lim*_*imc 14
我发现每个服务类有多个DAO没什么问题.多年前,当我第一次开始进行Web开发时,我有一个服务DAO,因为这似乎是最合乎逻辑,最直接的方法.然后,我开始看到服务于不同服务的DAO中存在类似API的问题.因此,我的"不成熟"解决方案是将这些公共API推广到某些父级DAO,以便由这些DAO继承.当项目增长时,它已经到了继承没有任何意义的地步,因为我有80%的孩子DAO需要API,但20%没有,但他们仍然从同一个父继承DAO因为他们共享其他类似的API.你在这看到问题了吗?我的意思是,在Java中,你只能从一个父级继承,所以我最终填充了"可能"被父DAO中的"多数"DAO使用的API,这完全违反了继承原则.
现在,我所有的DAO课程都有特定的职责/任务.DAO可以调用另一个DAO(例如,大多数DAO使用LoggingDAO来记录用户操作).这样,DAO不是让一个DAO服务于特定服务,而是提供可能使服务受益的操作列表.该服务将"使用"任何DAO来完成任务.
希望这个解释有所帮助
只要分解 DAO 有意义,一对多就可以。
我认为拆分 DAO 有意义的几个原因: