@lix7 谢谢回复!我还想请教一下有关 dao 层的问题:1.如果后续项目除了 mysql 还要用到 mongodb 或者 redis 的话,是不是相关操作也都放在 dao 层。2.dao 层里具体实现是对每一个 model 都要写自己的 list 、load 、save 函数吗,而且对与 list,我可能会有好多地方用到,但参数条件可能都不同,比如有些要多个 where,有些要 order by,有些要 limit,这是不是每用到一个不一样的,虽然都是 list,但都要再加一个函数?
lix7
2020-09-07 18:59:26 +08:00
@mzmxcvbn 1. 都放在一层 dao 里,叫什么不重要,重要的这层只负责数据的加载和保存,你只需要调用标准接口,不需要关心存储细节; 2. 从 DDD 的角度来讲,每一个聚合根对应一个 DAO ( DDD 里叫 repository )。但如果只从分层角度来考虑的话,是的,每一个 model 对应一个 dao ; 3. 对于 list 接口,你自己已经提到了,where/order by/limit 都只是“参数条件”,所以他们只是一个大接口的参数而已,这个接口的基础功能,就只是 list,至于怎么 list 、list 多少个东西出来、顺序是啥样的,只是参数而已