类图
类图(Class diagram):是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。
*类图的组成:
-类
-接口
-协作
-关系
一、类(Class)
类:一般包含3个组成部分。第一个是类名;第二个是属性(attributes);第三个是该类提供的方法( 类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。类名部分是不能省略的,其他组成部分可以省略。
-类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。
-属性和方法书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型]
-属性和方法之前可附加的可见性修饰符:
-加号(+)表示public;减号(-)表示private;井号(#)表示protected;省略这些修饰符表示具有package(包)级别的可见性。
二、接口(interface)
接口:是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。
三、协作(collaboration)
协作:是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素相加能得到的。它是由一组共同工作以提供某种协作的角色和其它元素构成的群体,这些协作行为大于所有元素各自行为的总和。因此,协作有结构、行为和维度。一个给定的类可以参与几个协作。
例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。
四、关系(Relationship)**
1、关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。
表示方法:用 实线+箭头, 箭头指向被使用的类。
-普通关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。
表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。
(1)单向/双向关联:
(2)多种关联:
(3)自身关联:
-聚合:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。
表示方法:空心菱形+实线+箭头,箭头指向个体
-组合:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,组合关系不能共享。
表示方法:实心菱形+实线+箭头
2、依赖:是类与类之间的连接,表示一个类依赖于另一个类的定义。
-例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
-表示方法:虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量。
3、泛化
4、实现:是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。