Module是一个传统的,较成熟的设计元数,虽然使用模块有一些技术上的原因,但主要原因确是“认知超载”。它为我们提供了两种观察模式,一是可以在module中查看细节,而不会被整个模型淹没,二是观察module之间的关系,而不考虑内部细节。领域层中的module应该成为模型中有意义的部分,它从更大的角度描述了领域。
它不仅仅是代码上的划分,而且也是概念的划分。一个人一次考虑的事情是有限的(因此才要低耦合)。不连贯的思想和"一锅粥"似的思想同样难易理解(因此才要高内聚)。这里更多的像是为了降低人的理解成本。
好的案例
1.Mudule的选择应该取决于被划分到模块中的对象的意义,它的名称应该来自通用语言。当你将一些类放到module中时,相当于告诉下一位看到你的设计的开发人员要把这些类放到一起考虑。
2.如果一个类依赖另一个包中的某个类,而且本地module对该module并没有概念上的依赖关系。那么或许应该移动一个类,或者考考重新组织module。