服务
有些领域中的动作,它们是一些动词,看上去却不属于任何对象。它们代表了领域中的一个重要的行为,所以不能忽略它们或者简单的把它们合并到某个实体或者值对象中
服务的3个特征:
1.服务执行的操作涉及一个领域概念,这个领域概念通常不属于一个实体或者值对象。
2.被执行的操作涉及到领域中的其他的对象。
3.操作是无状态
模块
模块的必要性:
1、模型大到一定程度时必须要使用模块来降低模型的复杂性。
2、代码应该具有高层次的内聚性和低层次的耦合度。
建立模块的方式:
将高关联度的类分组到一个模块以提供尽可能大的内聚。
有很多类型的内聚。最常用到的两个是通信性内聚和功能性内聚。
1、通信性内聚通常在模块的部件操作相同的数据时使用。
2、功能性内聚在模块中的部件协同工作以完成定义好的任务时使用。这被认为是最佳的内聚类型。
在设计中使用模块是一种增进内聚和消除耦合的方法。
模块名称会成为通用语言的组成部分。模块和它们的名字应该能反映对领域的深层理解。