为啥还要打扰DAO层

Posted

技术标签:

【中文标题】为啥还要打扰DAO层【英文标题】:why even bother with DAO layer为什么还要打扰DAO层 【发布时间】:2013-10-18 08:48:00 【问题描述】:

目前我参与了一个具有以下分层的项目(springJPA):

    服务层(检查授权并将操作委托给 管理层) manager layer - 执行大量业务逻辑 然后致电:entityManager.save(object)

如您所见,此项目中没有DAO 层,而作为DAO 层***者,我开始爱上此设置。

这种设置的优缺点是什么?

我们应该为道烦恼吗?

【问题讨论】:

【参考方案1】:

Separation of concerns 是您在爱上这种方法之前应该想到的词。在一般实践中,业务逻辑和 dao 逻辑应该分开,以防万一将来您决定更改数据库,则无需遍历每个类来搜索更改访问新数据库的方式,但在 DAO 层方法中,您只需要更改您作为业务层的 DAO 层保持不变。

【讨论】:

有趣的是,现在,几个月后,我们的产品提出了一个新要求,而 DAO 层将使其更容易实现。

以上是关于为啥还要打扰DAO层的主要内容,如果未能解决你的问题,请参考以下文章

java开发时为啥要dao和service都是model层吗?

java开发时为啥要dao和service都是model层吗?

当 Servlet、JSP 和轻量级 DAO 层可以工作时,为啥要使用 MVC 框架?

java中dao层和service层的区别是啥?

java中dao层和service层的区别是啥?

MyBatis精简版--实现接口代理方式实现Mapper(Dao) 和动态SQL