我正在开发一个应用程序,它有一个操作领域模型的服务层。在当前设计中,我通过服务层传递领域对象(例如,在调用
我觉得有些不太对头。首先,它似乎像过程式编程。其次,领域对象有设置器(如
如果我可以隐藏客户端的设置器,并使不同包中的ServiceLayer和DAO能够访问领域对象的设置器,那么我会感觉更好一些。
这种方法是否可行,还是有更好的方法?(此外,欢迎任何带有基础领域模型的服务层的实际示例!)
此外,我已阅读了无血统领域模型反模式,我不认为我会掉入这个陷阱,但我并不完全确定!
EmploymentService.getEmployee()
时返回一个Employee
领域对象),但需要对对象执行的操作通过服务层进行(例如EmploymentService.transferEmployee( int employeeId, int newLocationId)
,这里的例子是编造的)。我觉得有些不太对头。首先,它似乎像过程式编程。其次,领域对象有设置器(如
Employee.setLocationId
),客户端可以调用该设置器,当然不会将员工转移到新位置,因为所有协调不同系统所需的复杂操作都在服务层中。如果我可以隐藏客户端的设置器,并使不同包中的ServiceLayer和DAO能够访问领域对象的设置器,那么我会感觉更好一些。
这种方法是否可行,还是有更好的方法?(此外,欢迎任何带有基础领域模型的服务层的实际示例!)
此外,我已阅读了无血统领域模型反模式,我不认为我会掉入这个陷阱,但我并不完全确定!
EmploymentService.transferEmployee(Employee emp, Location newLoc)
无论如何,对于你的关注点点赞。 - Matt Ball