Refactoring from Anemic Domain Model Towards a Rich One | Pluralsight
vkhorikov/AnemicDomainModel: Source code for the Anemic Domain Model Pluralsight course (github.com)
map???
特征:
class 不含任何的methods; class 由 属性组成 =》一堆数据,没有行为
缺点:
1. poor disconverable:无法知道这种类型数据,有哪些操作 =》无法直接在(一个class的实例下 +. )去查看可进行的所有操作
=》由于操作的可视性查,容易导致 方法的冗余。尤其是 领域模型 随着项目大小、时间 越来越大 =》很难记住所有的细节
2. lack of encapsulation。缺少封装,无法阻止破环其 完整性、有效性 的行为
=> 容易犯错,尤其是 对 不熟悉的人来说,到处是雷。
=》无法阻止 violating the invariant(定义、规则)
=》无指导:哪些可做?哪些不可做?
=》完全的自由,增加了 犯错的机会。 几乎可以在这些class对象上 进行任何操作(简单、容易理解,but 会带来 问题) ,dangerous!
=》如何 防弹?确保 暴露 绝对最小的 在领域模型上的 操作。 尤其操作涉及到 data mutation
summary: