看懂UML类图
类图基本知识
类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。
看懂类图可以帮助我们学习设计模式,在进行软件设计的时候,类图能够让我们在正确编写代码以前对系统有一个全面的认识。
+标识public
-表示private
#表示protected
~表示default,也就是包权限
_下划线表示static
斜体表示抽象
类与类之间的关系
在UML类图中,常见的有以下五种关系: 泛化(Generalization), 关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
泛化关系
泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。
1. 继承关系
继承关系表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。比如大雁继承鸟。
2. 实现关系
实现关系表示一个class类实现interface接口(可以是多个)的功能。比如唐老鸭实现可说话接口。
依赖关系
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。比如动物是依赖于水的。
关联关系
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。
聚合关系
表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。
组合关系
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。