UML中的类图
一、类、接口和类图
1.类(Class)
在UML中类包含:
- ⑴ 类名(Name),如:Student
- ⑵ 属性(Attribute)是指类的特性,
格式:[可见性] 属性名:类型 =**缺省值("可见性"在类图中分别用符号+、-、#、~表示) - ⑶ 操作(Operations)是类的成员方法,
格式:[可见性] 名称(参数列表) [: 返回类型]
2.接口(Interface)
接口是一种特殊的类,它包含抽象操作,但不包含属性。它描述了类或组件对外可见的动作。下图是图形类接口的UML表示:
3.类图(ClassDiagram)
类图是用来显示系统中的类、接口、协作以及它们之间的静态结构和关系的一种静态模型。
二、类之间的关系
1.依赖(Dependency)关系
依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式。
在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。
2.关联(Association)关系
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系分为一般关联关系、聚合关系和组合关系,我们先介绍一般关联。关联可以是双向的,也可以是单向的。
3.聚合(Aggregation)关系
聚合关系是强关联关系,是整体和部分之间的关系,是has-a的关系。聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。
4.组合(Composition)关系
组合关系也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是contains-a关系。整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。
5.泛化(Generalization)关系
泛化关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系, 是is-a的关系。
6.实现(Realization)关系
实现关系是接口与实现类之间的关系。
在UML类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,汽车和船实现了交通工具,其类图如下: