UML中的类图符号按耦合度从低到高依次为:虚线,箭头,实线,空心三角,实心三角,空心菱形和实心菱形。
虚线+箭头是表示即依赖的关系
依赖关系: 是一种使用的关系, 即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖。
指C5可能要用到C6的一些方法,也可以这样说,要完成C5里的所有功能,一定要有C6的方法协助才行。C5依赖于C6的定义,一般是在C5类的头文件中包含了C6的头文件。ROSE对依赖关系不产生属性。
举例:函数中的入参
实线+箭头表示关联的关系
关联关系: 是一种拥有的关系, 可以分为双向关联, 单向关联和自身关联,双向关联是指双方都拥有对方的引用, 都可以调用对方的公共属性和方法,单向关联是指只有某一方拥有另一方的引用, 这样只有拥有对方者可以调用对方的公共属性和方法,自身关联是指拥有一个自身的引用。
C3->C4:表示相识关系,指C3知道C4,C3可以调用C4的公共属性和方法。没有生命期的依赖。一般是表示为一种引用。
举例:成员变量中的引用。
虚线+空心三角表示实现关系
实现关系: 是一种类与接口的关系, 表示类是接口所有特征和行为的实现
举例:实现接口
实线+空心三角表示的是泛化(继承)关系
泛化关系: 是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为。
如果两个类存在泛化的关系时就使用,例如父和子,动物和老虎,植物和花等。
举例:继承父类
实线+空心菱形表示的是聚合的关系
表示C9聚合C10,但是C10可以离开C9而独立存在(独立存在的意思是在某个应用的问题域中这个类的存在有意义。)
实线+实心菱形则表示组合的关系
组合(也有人称为包容),表示的是C8被C7包容,而且C8不能离开C7而独立存在。