DDD学习笔录——提炼问题域之有效提炼知识的模型(二)——CRC卡

方式五:CRC卡

第一次见到这个东东。

CRC stands for Classes, Responsibilities, Collaborations. 类名,类的职责,类的协作关系

CRC(Class-Responsibility-Collaborator,类-职责-合作):CRC卡是一个标准索引卡集合,每一张卡片表示一个类。类名在最上方,类的职责在左侧,类的协作关系放在右侧。

类: 代表一系列对象的集合,这些对象是对系统设计的抽象建模,可以是一个人、一件物品等等,类名写在整个CRC卡的最上方。
职责: 包括这个类对自身信息的了解,以及这些信息将如何运用。诸如,一个人,他知道他的电话号码、地址、性别等属性,并且他知道他可以说话、行走的行为能力。这个部分在CRC卡的左边。
协作: 指代另一个类,我们通过这个类获取我们想要的信息或者相关操作。这个部分在CRC卡的右边。

CRC卡让团队和业务专家专注于思考问题域中概念的语言。

CRC卡被划分为三个部分且包含一下信息:

1、类名称 ,它表示领域中的一个概念

2、类的职责

3、与满足其目的相关且所需的类

CRC卡讲求高内聚低耦合

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量。
一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
posted @ 2017-06-23 22:50  longphui  Views(459)  Comments(0Edit  收藏  举报