例如一个获取用户信息的功能,但是可能不同接口需要不同的字段。假设 user 表包含 id, created_at, updated_at, username, password, email 字段,一个接口需要 id 和 username,另一个接口需要 username 和 email,项目为普通的 mvc 架构,controller 层提供接口,service 层对接 controller 和数据库,现在我能想到的有三种方式,不知道大家平时都怎么使用。
- service 层方法查出 user 的全部字段,在 controller 层通过创建新 object,将所需字段赋值给 object
- service 层方法参数和返回值设置为 interface,在 controller 层调用时将需要查询的 object 作为参数传入
- service 层写两个方法,分别返回不同 object
1 的问题在于需要做额外的赋值操作,2 的话入参结构有不确定性,可能引起问题,3 的话主要是会多些重复代码,但是能保证方法返回可预期,个人比较倾向方法 3 。 其实还有方法 4 就是什么都不处理都返回去,让调用方筛选,不过这个被直接 pass 了。
)