一、基本介绍
统一建模语言(Unified Modeling Language, UML)是用来设计软件的可视化建模语言。具有简单、统一、图形化、能表达软件设计中的动态与静态信息的特点。类图(Class diagram)是UML定义的一种显示模型静态结构,特别是模型中类、类的内部结构以及它们与其他类的关系的图。
二、类的表示方式
在UML类图中,类使用包含类名、属性和方法且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含了name,age和address这3个属性,以及work()方法。
UML类图中使用三种符号来表达属性/方法的可见性:
1、+:表示public
2、-:表示private
3、#:表示protected
属性的完整表示结构之一是:可见性 名称:类型【=缺省值】
方法的完整表示结构之一是:可见性 名称(参数列表)【:返回类型】
三、类与类之间关系的表示方式
1、一般关联关系
1)单向关联
在UML类图中,单向关联用一个箭头的实线表示。下图表示每一个客户都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现
2)、双向关联
在UML类图中,双向关联用一个不带箭头的直线表示。双向关联是双方各持有对方类型的成员变量。下图中,Customer类中维护一个List<Produce>,表示一个顾客可以购买多个商品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。
3)、自关联
自关联在UML类图中用一个带有箭头且指向自身的线表示。下图表示Node类包含类型为Node的成员变量。
2、聚合关系
聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。在UML类图中,聚合关系可以用带空心菱形的实线来表示,菱形指向整体。下图展示了大学和教师的关系
3、组合关系
组合表示类之间的整体与部分的关系,是一种更强的聚合。组合关系中,整体对象不存在了,部分对象也不存在。在UML类图中,组合关系可以用带菱形的实线来表示,菱形指向整体。下图展示了头和嘴的组合关系。
4、依赖关系
依赖关系是一种使用关系。在代码中,某个类方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类中的某些方法来完成一些职责。在UML类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。下图展示了司机和汽车的依赖关系,司机驾驶汽车。
5、继承关系
继承表示父类和子类的关系。在UML类图中,泛华关系用带空心三角箭头的实线来表示,箭头从子类指向父类。下图展示了teacher类和person类的关系。
6、实现关系
实现关系是接口与实现类之间的关系。类实现了接口,类中操作实现了接口中所声明的所有抽象操作。在UML类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。下图展示了汽车和交通工具的实线关系。
四、总结
- 需要明确类之间关系的含义
- 牢记UML中类图之间关系的表示方法