我需要了解应该在域、DAO 和服务层对象内部的方法类型(就业务逻辑而言)之间的区别。
例如,如果我正在构建一个小型 Web 应用程序来创建、编辑和删除客户数据,据我所知,在域层对象中,我应该添加获取/设置客户对象属性的方法,例如(getName、getDOB、setAddress、 setPhone ...等)。
现在我要学习的是我应该在 DAO 和服务层对象中放入什么方法。
提前感谢您的时间和努力。
笼统地说(不是 Hibernate 或 Spring 特定的):
DAO 层包含查询和更新,以将您的域层保存到数据存储中(通常是关系数据库,但并非必须如此)。使用接口将您的 DAO 从实际数据存储中抽象出来。这并不经常发生,但有时您想更改数据存储(或使用模拟来测试您的逻辑),而接口使这更容易。这将具有“save”、“getById”等方法。
服务层通常包含您的业务逻辑并协调领域层和 DAO 之间的交互。它将具有对您的特定域有意义的任何方法,例如“verifyBalance”或“calculateTotalMileage”。
DAO:用于“包装”JPA 或 JDBC 或 SQL 或 noSQL 调用或任何访问数据库系统的“包装器”方法。
域:与单一类型的实体(域对象)相关的业务逻辑调用。
服务:与一组实体类型或一组相同类型的多个实体相关的业务逻辑调用。
(我不确定英语,对不起.......)
意思是:服务层比领域层“大”,往往靠近前端,经常调用或使用多个领域对象。
域对象为域的一部分封装了大部分内容(这就是它们被称为 DO 的原因)
DAO 只是技术性的,有时需要,有时不需要。当使用真正的域对象时,通常会使用“存储库”来隐藏对数据库系统的访问,或者添加特殊的数据库功能等。
前端 --> 服务方法1 --> 做X类型的A,做X类型的B,List