一、类图相关概念
- 给出系统的静态设计视图
- 内容:
(1)类
(2)接口
(3)协作
(4)依赖、泛化和关联关系
二、类图中的事物
1、类:
- 属性及方法可见性
public 用+表示
private 用-表示
protected 用#表示
package 用~表示
抽象类:类名用斜体
2、接口:
一组操作的集合,只有操作的声明而没有实现
3、抽象类:
不能被实例化的类,一般至少包含一个抽象操作
4、模板类:
一种参数化的类,在编译时把模板参数绑定到不同的数据类型,从而产生不同的类
三、关系
1、依赖关系:
依赖关系是一种偶然的、较弱的使用关系,特定事物的改变可能影响到使用该事情的其它事物,在需要表示一个事物使用另一个事物时使用依赖关系。
UML中使用带箭头的虚线表示类间的依赖(Dependency)关系,箭头由依赖类指向被依赖类。下图表示Dirver类依赖于Car类
2、关联关系:
描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。Java中实现关联关系时,通常将一个类的对象作为另一个类的成员变量。
关联关系用带箭头的实线表示
例如:数据库管理员与数据库的关系
单向关联和双向关联
单项关联要用箭头表明方向,双向关联可以省略箭头
自关联:自关联是指属性类型为该类本身。例如在链表中,每个节点持有下一个节点的实例。
关联的多重性
例如;页面和按钮的关系,一个页面可以有0到多个按钮,一个按钮只能属于一个页面
一般关联关系的语义较弱,聚合、组合师特殊的关联关系,语义较强
聚合
聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,部分对象是整体对象的一部分,但是部分对象可以脱离整体对象独立存在,也即整体对象并不控制部分对象的生命周期。从代码实现上来讲,部分对象不由整体对象创建,一般通过整体类的带参构造方法或者Setter方法或其它业务方法传入到整体对象,并且有整体对象以外的对象持有部分对象的引用。
在UML类图中,聚合关系由带箭头的实线表示,并且实线的起点处以空心菱形表示,如下图所示。
组合
组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象控制成员对象的生命周期,一旦整体对象不存在了,成员对象也即随之消亡。从代码实现上看,一般在整体类的构造方法中直接实例化成员类,并且除整体类对象外,其它类的对象无法获取该对象的引用。
在UML类图中,组合关系的表示方式与聚合关系类似,区别在于实线以实心菱形表示。
3、泛化关系:
在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间,箭头指向父类
4、实现关系:
描述类类元之间的关系,一般在类可接口之间使用实现关系,表示一个类实现了某某接口,