Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。

3年前关闭。



Improve this question




抱歉,如果这是重复的,则无法在相关问题中找到关于该主题的任何具体示例。

阅读Martin Fowler's article on the 'Anemic Domain Model'之后,我一直在徘徊,以了解为什么这被认为是反模式。甚至大多数企业开发人员都将其视为反模式,因为AFAIK大概90%的j2ee应用程序都是以“贫乏”的方式设计的?

有人可以建议进一步阅读该主题(不是“域驱动设计”书),或者甚至更好地给出具体示例,说明这种反模式如何以不良方式影响应用程序设计。

谢谢,

最佳答案

给定以下两类:

class CalculatorBean
{
    //getters and setters
}

class CalculatorBeanService
{
   Number calculate(Number first, Number second);
    {
       //do calculation
    }
}

如果我理解正确,Fowler表示,因为您的CalculatorBean只是一堆getter/setter,您不会从中获得任何实际值(value),并且如果将该对象移植到另一个系统中,它将什么也没做。问题似乎是您的CalculatorBeanService包含了CalculatorBean应该负责的所有内容。这不是最好的,因为现在CalculatorBean将其所有责任委托(delegate)给CalculatorBeanService

10-07 20:29