我正在开发一个具有在域模型上运行的服务层的应用程序。在当前的设计中,我通过服务层向上传递域对象(例如,Employee
在调用时返回域对象EmploymentService.getEmployee()
,但要求对对象执行的操作通过服务进行(例如EmploymentService.transferEmployee( int employeeId, int newLocationId)
。(顺便说一下,示例是人为的)。
这对我来说有点不对劲。一,它看起来像过程编程。第二,域对象具有诸如Employee.setLocationId
客户端可以调用的设置器,当然不会将员工转移到新位置,因为协调假设转移员工所需的不同系统的所有复杂操作都在服务层中。
如果我可以对客户端隐藏设置器,我会感觉更好,但是不同包中的 ServiceLayer 和 DAO 都需要能够访问域对象的设置器。
这种事情可以吗,还是有更好的方法?(此外,任何具有底层域模型的服务层的真实示例都将受到欢迎!)
另外,我已经阅读了贫血域模型反模式,我认为我没有落入那个陷阱,但我并不完全确定!