有两个 case,分别是不同人封装的,下面是伪代码:
case1:
// 根据用户昵称获取用户信息 function findUserByName(name){ // 获取数据库链接 db = _get_db() if (not db){ return error } // orm 查询 user, err = db.where('name', name).get(table_name) if (err) { LOG("查找姓名失败", err) return error } return user } // 根据用户 ID 获取用户信息 function findUserById(userid){ // 获取数据库链接 db = _get_db() if (not db){ return error } // orm 查询 user, err = db.where('id', userid).get(table_name) if (err) { LOG("查找用户 id 失败", err) return error } return user } // service 层调用 user1 = userRepo.findUserByName('拜拜你条尾') user2 = userRepo.findUserById(12) code ... case2:
// 简单封装了查询函数? function query(where_array, limit){ // 获取数据库链接 db = _get_db() if (not db){ return error } // orm 查询 user, err = db.where(where_array).limit(limit).get(table_name) if (err) { LOG("查找用户失败", err) return error } return user } // service 层调用 user1 = userRepo.query({name = '拜拜你条尾'}, 1) user2 = userRepo.query({id = 12}, 1) code ... case2 这种封装有点迷的感觉,不能 cover 大部分的情况(where in/ or 之类),那这样的封装的意义何在?倒不如像第一种一样,不同的查询条件就封装一个方法,见名知意,不会给人带来疑惑?
不知道各位怎么看...
另外像请教下大家在这一层是怎么封装代码的?
