1,类与类之间的关系
在UML类图中,常见的有以下几种关系:
泛化(Generalization),实现(realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
2,依赖
在类图中使用虚线箭头表示
只要是在类中用到了对方,就存在依赖关系。没有对方,编译都不能通过。
1,类中用到了对方
2,类的成员属性
3,方法的返回类型
4,方法的参数类型
5,在方法中使用到
例:
public class Service { private Test1 test1; public void fun(Test2 test2){ } public Test3 fun2(){ return null; } public void fun3(){ Test4 test4 = new Test4(); } }
这段代码中Service类依赖了Test1,Test2,Test3,Test4
3,泛化(继承)
泛化是依赖的一种特例,也就是继承,继承就不用多说了,子类继承父类
类图中使用空心三角+实线表示
4,实现
实现也是依赖的一种特例,类实现接口
类图中使用空心三角+虚线表示
5,关联
关联关系就是类与类之间的联系,也是依赖关系的特例
在类图中用实线+箭头表示
单向一对一关系 比如下面这个,Person类里面有一个成员变量IDCard,而IDCard里面没有Person这个成员变量
双向一对一关系 下面这样就是双向一对一关系
6,聚合
聚合关系表示的是整体和部分的关系,整体和部分可以分开。聚合是关联关系的一种特例。
在类图中使用空心菱形+实线表示
比如现在有一个电脑类,一个鼠标类,一个显示器类。 显然鼠标和显示器是电脑的一部分,没有了鼠标和显示器,电脑还是电脑。
代码表示
类图 表示鼠标和显示器聚合到电脑中
7,组合
如果我们认为电脑和鼠标显示器是不可分离的,那么他们的关系就升级为组合关系
在类图中用实心菱形+实线表示,组合也是整体与部分的关系,但是整体与部分不可分离
代码就变成这样
这样一来,电脑这个类一创建对象,鼠标和显示器就也会创建出来,电脑对象销毁,鼠标和显示器也会销毁。他们变成了共生共灭的关系。
类图