1.依赖关系(Dependency)
对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。
在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。
场景:人与电脑无关,但是当人编程,需要使用电脑,此时完成编程动作依赖电脑,类与类的依赖关系图在程序中为using引用。

dependency.png
2.关联关系(Association)
对象之间一种引用关系,比如商品类与订单类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。聚合和组合比较特殊,后面单列。
在类图使用带箭头的实线表示,箭头从使用类指向被关联的类。可以是单向(商品类和订单类)和双向(订单类和客户类、丈夫和妻子)。
关联关系表示的是类之间的“持久”关系,这种关系一般表示重要的业务关系,需要数据库存储,而依赖则表示“暂时、短暂”的关系,无需存储。

Association.png
3. 聚合关系(Aggregation)
表示"has-a"的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。关联关系和聚合关系在语法上没有区别,只有在语义上区分,包含整体与部分的关系。
在类图中整体端使用空心菱形的连接方式,例如Car\Engine\Tyre。

Aggregation.png
4.组合关系(Composition)
表示 "contains-a"的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。也使用属性表达组合关系,是关联关系的一种,是比聚合关系强的关系。
在类图中整体端使用实心菱形的连接方式,例如一个窗口包含menu、slider、Panel

Composition.png
5.泛化(generalization)
5.1继承(inheritance)
表示“is-a”的关系,上层是父类。
在类图中父类端采用空心三角实线连接,例如cat是animal的子类。

继承.png
5.2实现(realization)
表示“is-a”的关系,上层是接口。
在类图中接口端采用空心三角虚线连接,例如dog实现animaldo接口。

实现.png