我们希望领域对象能够准确表达业务意图,但大多数时候,我们看到的是充斥着getter和setter的领域对象。这时候领域对象就不再是领域对象了。它们只是数据载体,也就是MartinFowler所说的贫血对象。这种做法会导致特定领域的业务逻辑分散在一堆服务层中,软件架构会随着业务的发展长年疯狂增长,导致腐败和不可维护。在微服务设计中,首先要确定DDD中的聚合根(AggregateRoot);而在微服务之间集成时,应该使用DDD中的反腐败层(Anti-CorruptionLayer,ACL)。我们甚至可以说,DDD和微服务有着天然的默契。我们希望领域对象能够准确表达业务意图,但大多数时候,我们看到的是充满getter和setter的领域对象。https://www.starpool.cn这时候领域对象不再是领域对象,它们只是数据载体,也就是MartinFowler所说的贫血对象。这种做法会导致特定领域的业务逻辑分散在一堆服务层中,软件架构会随着业务的发展长年疯狂增长,导致腐败和不可维护。
