我在学习设计模式的时候,发现过于抽象。相关例子,都比较简单,在项目中,也无法使用。因此,尝试通过绘制UML图的方式,梳理关系,即能便于对设计模式的理解,又能梳理业务逻辑。希望对大家有所帮助。
类图
类图是UML面向对象中最常用的一种图,类图可以帮助我们更直观了解一个系统的体系结构。通过关系和类表示的类图,可以图形化地描述一个系统的设计部分。
接口
接口是描述类的部分行为的一组操作,接口只负责定义操作,而不负责实现。
抽象类
抽象类是包含一种或多种抽象方法的类,它本身不需要构造实例。定义抽象类后,其他类可以对它进行扩充,并且通过实现抽象方法,使抽象类具象化。
泛化关系
泛化关系是子类继承父类的所有细节。即为继承关系。
我在想为什么泛化就是继承?英文Generalization是广义化、泛化、一般化、概括的意思。而继承是可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法。那父类就是对子类的一个概括,即泛化。
实现关系
实现关系是指一种类与接口之间的关系,表示类是接口所有特征和行为的实现。实际使用中,主要是接口和抽象类的继承来实现
聚合关系
聚合关系表示整体和部分之间的关系,类与类之间的是强关系。即整体被删除,部分也会被删除。
组合关系
组合关系也表示整体和部分之间的关系,而类与类之间的是弱关系。整体被删除,部分也不会被删除。
关联关系
关联关系表示的是一个对象和另一个对象之间的离散连接。这里和聚合关系、组合关系不同的,它不是表示整体和部分的关系。
依赖关系
依赖关系,表示多个对象之间的关系,对于一个对象的改变,可能会影响会提供消息给另外一个对象。即使用者以某种形式依赖于其他对象。
| 依赖关系 | 说明 | 关键字 |
|---|---|---|
| 使用 | 包含调用、参数、发送、实例化 | use |
| 调用 | call | |
| 参数 | parameter | |
| 发送 | send | |
| 实例化 | instantiate |
以上为UML的一些基础知识,便于后续面向对象的分析,以及设计模式学习。