【发布时间】:2012-07-10 13:11:30
【问题描述】:
据我从Martin Fowler 了解到,贫血意味着将业务逻辑与领域对象分离,将其简化为琐碎的 getter 和 setter,而将领域行为移至服务层。我错过了什么吗?
如果某个对象没有任何行为,我们如何调用它domain?您能否提供一些非常简短的贫血域模型代码?
【问题讨论】:
标签: design-patterns language-agnostic anemic-domain-model
据我从Martin Fowler 了解到,贫血意味着将业务逻辑与领域对象分离,将其简化为琐碎的 getter 和 setter,而将领域行为移至服务层。我错过了什么吗?
如果某个对象没有任何行为,我们如何调用它domain?您能否提供一些非常简短的贫血域模型代码?
【问题讨论】:
标签: design-patterns language-agnostic anemic-domain-model
通过以下代码展示:
大多数代码都以域对象(例如 Account 或 TransactionEntity)的名义处理传递数据结构(如果您愿意,可以使用属性包)。它们是“域对象”,主要是因为它们具有域中存在的事物的名称。
大部分逻辑驻留在外部“服务”中 - 包含对(或单个)数据结构列表进行操作的脚本。结果,服务需要访问/修改域对象的内部信息。因此,域对象自发地产生了许多 getter 和 setter。 RIP 封装。
贫血是指领域类中领域逻辑/行为的缺失或缺乏。
更多指标:
【讨论】: