【发布时间】:2014-05-28 05:08:29
【问题描述】:
如果这个问题已经得到回答,请提前道歉,但我无法找到在这种情况下我真正理解的模型的实际含义的定义。
我听说模型一词仅用于描述持久层、所有特定于域的代码或仅描述域实体。从我读过的内容来看,贫血的领域模型似乎被认为是一件坏事,但具体原因似乎并不完全符合我的要求,我认为这是因为我不知道模型指的是什么在这种情况下。美国这个特定于MVC?
如果它只是指实体,那么仅将保持数据完整性的逻辑放入实体中并将实际使用这些实体的逻辑放入服务类有什么问题?这仍然被认为是贫血吗?如果是这种情况,您如何在不违反单一职责原则的情况下实际实现丰富的领域模型。
答案不需要特定于框架或语言,但如果重要的话,我正在使用 php 和 Symfony2。
提前感谢任何花时间为我提供一些说明的人!
【问题讨论】:
-
你的意思是这样的:stackoverflow.com/a/5864000/727208?
-
嗨@teresko。是的,这是我大部分问题的一个很好的答案,谢谢。我仍然模糊的部分是在遵循域驱动设计时域对象和服务之间的区别是什么。哪些职责属于服务,哪些属于领域对象。
-
服务处理域对象到域对象以及域对象到持久性交互(是否是数据映射器、存储库或/和工作单元取决于您的实现)。域对象处理数据验证并包含业务规则。
-
我刚刚意识到我的误解是在这种情况下“服务”是什么。我还注意到你是同一个人,他回答了我一半的软件架构相关问题。谢谢@teresko。你绝对是我在 php 社区遇到的最好的人之一。
-
域服务实现域用例,而域实体和值对象实现概念。
标签: oop symfony model-view-controller domain-driven-design solid-principles