我需要了解应该在Domain,DAO和Service层对象中的方法类型(在业务逻辑方面)之间的区别。
例如,如果我正在构建一个小型Web应用程序来创建,编辑和删除客户数据,据我所知,在Domain层对象中,我应该添加Get / Set Customers对象属性的方法,例如(getName,getDOB) ,setAddress,setPhone ...等)。
现在我想学习的是我应该在DAO和服务层对象中放置什么方法。
提前感谢您的时间和精力。
答案 0 :(得分:9)
一般来说(不是Hibernate或Spring特定的):
DAO层包含查询和更新,以将您的域图层保存到数据存储区(通常是关系数据库,但不一定是这样)。使用接口将DAO从实际数据存储区中抽象出来。它不会经常发生,但有时您想要更改数据存储区(或使用模拟测试您的逻辑),并且接口使这更容易。这将有“save”,“getById”等方法
服务层通常包含您的业务逻辑,并协调域层与DAO之间的交互。它将具有对您的特定域有意义的任何方法,例如“verifyBalance”或“calculateTotalMileage”。
答案 1 :(得分:7)
DAO:“包装”方法,用于“包装”JPA或JDBC或SQL或noSQL调用或任何用于访问数据库系统的方法。
域:与单一类型的实体(域对象)相关的业务逻辑调用。
服务:业务逻辑调用与一组实体或一组相同类型的几个实体相关联。
(我不确定英语,抱歉.......)
这意味着: 服务层比Domain层“更大”,通常靠近前端,经常调用或使用多个域对象。
域对象封装了域的一部分的大部分内容(这就是为什么它们被称为D.O.)
DAO只是技术性的,有时需要,有时候不需要。 当使用真实域对象时,通常使用“存储库”来隐藏对数据库系统的访问,或添加特殊的数据库功能或其他任何内容。前端 - >服务方法1 - >做。 X,d.o的A类型X的B,列表