有两个 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 之类),那这样的封装的意义何在?倒不如像第一种一样,不同的查询条件就封装一个方法,见名知意,不会给人带来疑惑?
不知道各位怎么看...
另外像请教下大家在这一层是怎么封装代码的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.