training_ Refactoring from Anemic Domain Model Towards a Rich One (Introducing an Anemic Domain Model)

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:

 

posted @ 2022-05-22 21:02  PanPan003  阅读(24)  评论(0编辑  收藏  举报