来源:互联网 发布:网络电视盒刷机包 编辑:程序博客网 时间:2024/04/29 09:27

摘自http://www.uml.org.cn/oobject/201007275.asp

 

类是具有相似结构、行为和关系的一组对象的描述符。类之间的关系是类图中比较复杂的内容。有关联、聚合、组合、范化、依赖。

  1. 关联:是模型元素之间的一种语义联系,是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。可以给关联加上关联名来描述关联的作用。关联两端的类也可以以某种角色参与关联,角色可以具有多重性,表示可以有多少个对象参与关联。可以通过关联类进一步描述关联的属性、操作以及其他信息。

  2. 聚合:是一种特殊的关联,聚合表示整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如舰队是由一系列的舰船组成。需求描述中“包含”、“组成”、“分为….部分”等词常意味着聚合关系。

  3. 组合:是一种特殊的关联,也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。

  4. 聚合和组合的区别:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

  5. 泛化:定义了一般元素和特殊元素之间的分类关系,类之间的这种泛化关系也就是继承关系。泛化关系是“a-kind-of”关系,定义一般元素和特殊元素之间的分类关系。

  6. 依赖:一个类型向另一个类发消息,或者是其数据成员,或者是操作参数等。关联必然是依赖,反之不然。

 

CRC分析法

(class,responsibility,collaboration),允许整个项目组参与设计,能收集到更多的好主意。

在项目初始阶段从类的关系开始,画概念层类图;开始设计时,专注于说明层类图;针对特定技术实现时,画实现层类图。

把精力放在关键领域,而不是为每个事物画一个模型。避免过早陷入实现的细节,将重点放在概念层和说明层。

 

原创粉丝点击