目录
1.关联关系(Association)
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系是类与类之间组常用的一种关系,分为一般关联关系、聚合关系和组合关系。我们先介绍一般关联关系。
一般关联关系又分为单项关联、双向关联、自关联。
1.1单向关联
在类图中单向关联关系使用一个带箭头的实线表示。如上图在Customer类中引用了Address类的实例,所以Customer类和Address类为单向关联关系。
1.2双向关联
在类图中双向关联用一条不带箭头的直线表示。如上图在Customer类和Product类中都含有对方的实例,这种关系就是双向关联。
1.3自关联
在类图中自关联用一个带有箭头且指向自身的线表示。如上图Node类中包含Node类型的实例,也就是自己包含自己的意思。
2.聚合关系
聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系。
聚合关系也是通过一个类的成员是另一个类的实例这种表现形式来实现的。但是不同于一般关联关系的是,聚合关系的两个物体之间具有整体和部分的关系。这个整体不能脱离部分,但是部分可以脱离整体而独立存在。例如下面的类图,University和Teacher之间是聚合关系,其中Teacher是University的一部分,但是Teacher可以脱离University而存在,而University不能脱离Teacher而存在。
在类图中,聚合关系使用带空心菱形的实线来表示,菱形指向整体。
3.组合关系
组合关系是关联关系的一种,是强聚合关系,也是整体和部分之间的关系。
组合关系不同于聚合关系的一点是,部分不能脱离整体单独存在,当然整体更不能脱离部分。例如下面的类图,Head和Mouth是聚合关系,Mouth不能脱离Head单独存在,当Head不存在时,Mouth也就不存在了。
在类图中,组合关系用带实心的菱形来表示,菱形指向整体。
4.依赖关系
依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中的表现方式是:某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些功能。
在类图中,依赖关系使用带箭头的虚线表示,箭头从使用类指向被依赖的类。
5.继承关系
继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类和子类之间的关系,是一种继承关系。
在类图中,继承关系使用带空心的三角箭头的实线来表示,箭头指向父类。
6.实现关系
实现关系是接口与实现类之间的关系。在这种关系中,实现类实现了接口,类中的操作实现了接口中声明的所有抽象操作。
在类图中,实现关系使用带空心箭头的虚线来表示,箭头指向接口。