我对OOP中的贫血领域模型感到有点困惑。是一种简单的旧X对象(其中X代表您喜欢的语言),没有行为(和责任)。
class AnemicDomainClass {
private $property;
public function getProperty() {
return $this->property;
}
public function setProperty($property) {
$this->property = $property;
}
}
......所有逻辑都在某些服务中?
class SomeStuffService {
public static function doSomething(AnemicDomainClass $class) {
$class->setProperty(42);
}
}
这出现在Martin Fowler的AnemicDomainModel文章末尾
通常,您在服务中找到的行为越多,就越多 可能你要剥夺自己域名的好处 模型。如果你的所有逻辑都在服务中,你就会失明。
这意味着什么?最好选择智能对象而不是智能服务。
答案 0 :(得分:0)
通常,您在服务中找到的行为越多,就越多 可能你要剥夺自己域名的好处 模型。如果你的所有逻辑都在服务中,你就会失明。
这意味着编写面向对象的代码,而不是代表数据的过程代码。面向对象的代码意味着将概念建模为知道自己的属性和行为的对象,并且它们协同工作以表示问题的工作解决方案。
使用恰好支持OOP的多范式语言并不意味着您正在编写面向对象的代码。