假设我有class USER
属性。
在某些示例中,我看到为某些功能定义了UserService class
。
我很困惑应该在User Class中编写哪些内容或函数以及UserService中的哪些内容。
对于e,g如果我想写一些函数来验证数据库中的用户,如
validate(user,pass)
应该在哪里写下这些功能
如果我有class ShoppingProducts
我希望得到特定用户购买的所有产品,我应该在哪个类中编写我的意思product class or UserService or ProductService
答案 0 :(得分:5)
这是领域模型与贫血模型的典型例子。
本次讨论中有很多理论,但我的一个实际建议是:
User
类的User
属性 上。See this我的相关文章。
答案 1 :(得分:0)
我不会进入域与贫血或SOA数据之间与行为分离的战斗。
我会说我认为服务是跨多个域(多个域对象)传播的行为,并处理数据传输对象(即不要将DTO放在域对象中)。
由于REST如此受欢迎,而且资源(REST以来)不是模型,您似乎总是需要DTO和服务类。
另一方面,使用AspectJ,Annotations和其他一些魔法你可以真正推动Domain Driven设计的优势,但我仍然认为你不应该引用域对象中的其他域对象。