UML和设计模式——类图、类之间的关系

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。(-----百度百科)

类的表示

UML类图中,可以绘制类的示意图:
UML和设计模式——类图、类之间的关系_第1张图片
上半部分代表成员属性
下半部分代表成员函数
+public
-private
#protected
_static
斜体表示抽象

类之间的关系

在类图中,既然可以绘制出类,一个类图中有多个类,那么类与类之间就可能存在着一定的关系
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

泛化

(1)继承:一个类继承另外一个类
空心三角形加实线,箭头指向父类
如:鸟继承于动物,鸟和动物是继承关系

(2)实现:一个类继承另外一个类并实现其中的虚函数(接口)
空心三角形加虚线,箭头指向父类
如:鸟继承于飞行动物,并实现飞行动物中的fly虚函数,鸟和飞行动物是实现关系

依赖

两个相互独立的对象,当一个对象需要依赖另一个对象完成构造或者功能时,产生依赖关系。具体体现在另一个类做函数参数或返回值等等。
用虚线箭头表示,箭头指向依赖的类。
如:鸟生存需要氧气,鸟依赖于氧气。人写代码需要电脑,人依赖于电脑。

关联

可以简单的理解为“拥有”“知道”的关系、关系平等且比依赖关系更强的关系。
用实线箭头表示,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。指向被拥有者。
如:老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。
但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

聚合

整体与部分的关系,且部分可以离开整体而单独存在,两个类拥有不同的生命周期。
带空心菱形的实心线,菱形指向整体。
如:轮胎和车轮的关系,轮胎可以离开车轮单独存在

组合

整体与部分的关系,但部分不能离开整体而单独存在。
带实心菱形的实线,菱形指向整体
如公司和部门是整体和部分的关系,没有公司就不存在部门。

你可能感兴趣的:(UML和设计模式)