类图关系
在UML中类图有很多种关系,而以java为例,常见关系有以下6大类,分别是:
依赖,关联,聚合,组合,继承,实现
对应含义
依赖
依赖表示一个类依赖另一个类,比如驾驶员类Driver,若需要拥有行驶功能,需要依赖汽车类Car。
在Driver类中,可以通过构造方法参数、普通方法参数、方法返回值、方法内局部变量的形式来应用Driver类。
类图表现形式:虚线+箭头,箭头指向被依赖的类,如Car类
关联
表示一个类A与另一个类B之间的练习,它使类A知道类B的属性和方法。
通常类B会以私有成员变量的形式存在于类A中。可以通过构造方法或setter方法来赋值。
关联的形式有多种:一对一(一个人->身份证)、一对多(一个部门->多个员工)、多对多(一个店铺<->一种商品)
类图表现形式:实线+箭头,箭头指向被使用的类
聚合
聚合是关联的一种,属于强关联关系。聚合关系表象上是一个整体和一个个体之间的关系。
一般关联关系的两个类处于同一个层次上,而聚合关系中两个类处于不同层次上,一个是整体,一个是部分,但又不是无法分割的,有点类似与挂靠或附加这种关系。
类图表现形式:空心菱形+实线+箭头,箭头指向个体
比如:【学校】和【老师】的关系,学校是整体,老师是个体,但老师离开了学校仍然可以存货,比如:家教或私教等等。(可能举例不太恰当,将就看吧)。
组合
组合是一种更为特殊的聚合关系。虽然仍然是整体和个体之间的关系,但它要求两个类紧密关联,整体对象控制着个体对象的生命周期,当整体对象被销毁时,个体对象也会一并被销毁。
类图表现形式:实心菱形+实线+箭头,箭头指向个体
比如:【一本书】和【书中的一页纸】,当书销毁了,书中的纸张也会销毁。
继承
继承关系就比较简单,就是有着上下级关系的两个类。当类A继承类B时,即为继承关系。
类图表现形式:实线+箭头,箭头指向父类
实现
实现关系也比较简单,表示类与接口之间的上下级关系。当类A实现了接口B时,即为实现关系。
类图表现形式:虚线+箭头,箭头指向接口