18
回答
一个页面对应一个DAO,还是一个模块对应一个DAO
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

各位在开发的时候,是一个页面对应一个DAO类,还是一个模块对应一个DAO类

如果一个页面对应一个DAO类,优点是每个页面的后台代码都有自己的类,方便维护,缺点是造成会类很多

如果一个模块对应一个DAO类,优点是每个模块的后台代码都在一个DAO里面维护,类的数量会减少,缺点是如果业务比较复杂,会造成一个类很庞大

<无标签>
举报
seandu
发帖于5年前 18回/1K+阅

以下是问题补充:

  • @seandu :我同事又提出一个观点,他认为应该一个DAO对应一张数据库表,而不是和业务相关联 (5年前)
共有18个答案 最后回答: 5年前
一个通用dao,一个service包含一个泛型dao实体,dao只负责增删改查的对数据库操作。。各种特殊操作在service里定制
--- 共有 5 条评论 ---
烈冰回复 @小银 : 嗯,除非你是做产品才会跨数据库,一般的业务系统在需求阶段可能已经定了用什么数据库 5年前 回复
小银回复 @烈冰 : 一般sql语句不太会频繁改动吧,。。尽量在sql语句边上多写点注释,说明下这个sql语句的一些条件用意等信息,如果有维护的必要刻意快速的理解语句的意图。。。我觉得sql语句的强大灵活应该得到利用。。但是这样在更换数据库的时候会遇到非常大的麻烦,有些特定数据库的函数并不是通用的 5年前 回复
烈冰我也喜欢这样,简单,不过SQL维护起来很麻烦 5年前 回复
小银回复 @杜仁栋 : 额。。。我的service里都是有sql语句的。。。我不知道这样是不是非常的不好。。但是我觉得sql语句是非常灵活非常强大的,如果可以写sql的话灵活性会大很多。。至少我是这么操作的 5年前 回复
seandu特殊操作的话,如果在service里面做的话, 那就有可能要在service里面写sql了? 5年前 回复
面向对象编程,一个对象一个DAO
--- 共有 2 条评论 ---
loki_lan回复 @杜仁栋 : 谁说一个对象只对应一个表的 5年前 回复
seandu一个对象,对于DAO来说,就是对应的一个实体对象,一个实体对象就是对应的一个数据库表,也就是说,一个DAO对应一个数据库表 5年前 回复

模块对应DAO,类怎么会大呢,DAO不是只放对DB的操作吗。你说的是service吧。

这个当然不是一定的,最好的办法是模块对应service。因为如果一个页面对应一个service,最后会创建类创建到你恶心,一个表对应service也一样,表非常多的情况下就蛋疼了,而且有些操作是多表关联的(这是很常见的事情)。

service非常大也无可厚非,我没见过谁说因为一个类大而怎么怎么样的。

或者如果你真有强迫症,你可以分为几个小service啊,大的模块中也可以细分为几个小模块。

顶部