lov*_*ing 17 java business-objects domain-model service-layer
例如,我有一个用户表,要进行分层,我创建了这样的POJO:
UserEntity.java
UserDao.java
UserBO.java(业务对象,域模型?)
UserService.java(用于服务层)
UserBO.java和UserService.java之间有什么区别?为什么我们把它分成两个对象?
Aff*_*ffe 10
域模型包含与用户意味着相关的信息和功能.它应该在概念上映射到现实世界中物理存在的东西或问题空间中明确定义的概念.
该服务包含与执行原子工作单元相关的信息和功能.它应该在概念上映射到在域模型的成员上执行的任务.通过单击应用程序中的按钮执行的单个原子任务通常涉及域的许多成员一起工作,除非您的应用程序只是一个CRUD-y电子文件柜.
实体:映射到问题域中某种实体(= 感兴趣的对象)的东西。在某些情况下 (DDD) 有丰富的域模型,其中实体具有可以操纵模型状态的方法。更保守的方法是让它们贫血(除了 getter 和 setter 之外没有其他方法)。通常,实体类最终会映射到数据库表。
BO:我猜这是某种数据传输对象。有些人非常关心将实体访问限制在应用程序的有限部分,他们喜欢将数据从实体复制到 DTO。因此,服务可能会从 DAO 接收一个实体,然后将其复制到 DTO 中,而该 DTO 就是服务的调用者将返回的。
数据访问对象提供了一种查询或更新数据的方法,它可以具有返回实体或实体集合的查询方法。DAO 通常不定义数据库事务,它们让服务来完成。
服务是执行某些任务的东西,例如不同的用例通常不会沿着实体线清晰地分解。此外,服务通常涉及实体试图避免的依赖项(因为域模型是关于建模状态和状态更改,而依赖项与基础设施有关)。服务可能具有为某些用户实现用例的方法,其中每个方法都是事务性的。
| 归档时间: |
|
| 查看次数: |
15280 次 |
| 最近记录: |