Domain Pollution Resolution
域污染解除
0. Domain 名词解释
首先说明一下 Domain 在本文中的意思。
<<Domain Driven Design>> 一书,令 Domain 这个词很火。引起了广泛争论:哪些Logic 应该放在 Business Service Layer, 哪些应该放在 Domain Object里面。这类争论纷纷扬扬,最后通常都上升到哲学高度,世界观高度,认知心理学高度。如果不幸发展到极端情况,双方很可能开始相互质疑对方的智商和对世界的基本理解能力。
这个层次的Domain 纷争,不是本文所关心的话题。
我一向认为,设计能够满足如下的条件,就可以称为是一个好的设计:能够使用多态性,代替Hard-Coded if else switch 等逻辑分支;新需求来的时候,不需要在旧代码里面添加if else switch等逻辑分支,而只需要加入一个新的Class;尽量避免 Package, Class 级别的交叉引用。
本文所关心的Domain 是一个更高的层次,类似于DSL, Domain Specific Language 里面的Domain的意思。
本文主要讨论如下议题: