贫血领域对象:方法不单一,方法的名字不能传达方法的含义,并且方法体的实现也不具有单一性,也不能体现方法的功能。说白了,方法不能体现业务。好的代码就是能表达业务的代码。
贫血领域对象会随着时间推移,会让人搞不清楚它最初的含义和功能是什么,即让人搞不清楚它要实现什么样的业务场景或者用例流。
领域驱动设计的领域对象应该有它应该具有的行为,千万不能因为降低代码量或者为了凑合而把复用特性用烂、用错。该是领域对象行为或者处理的事务,就应该让其完成,而不能转移到领域对象的客户端(即调用者)那端。其实,这也是封装思想的一个体现。
理解领域,子域,限界上下文:
在论坛领域,不应该重点关心谁能发帖子。应该关注的是谁在发帖,发的什么贴。
至于谁能发帖属于另外一个领域:安全域。
这就是分清楚每个领域是主要干啥的。