从Martin Fowler中我可以理解,贫血意味着将业务逻辑与域对象分离,域对象被简化为琐碎的getter和setter,而域行为则转移到服务层。我想念一下吗?
如果没有任何行为,我们如何调用某个域对象?能否请您提供一些非常简短的贫血领域模型代码?
答案 0 :(得分:4)
由以下代码展示:
大多数代码都以域对象(例如Account或TransactionEntity)的形式处理传递数据结构(如果你愿意的话,属性包)。它们是“域对象”,主要是因为它们具有域中存在的东西的名称。
大多数逻辑都驻留在外部“服务”中 - 包含在(或单个)数据结构列表上运行的脚本。因此,服务需要访问/修改域对象的内部信息。因此域对象会自发地生成大量的getter和setter。 RIP封装。
贫血是指域类中域逻辑/行为的缺失或缺乏。
更多指标: