设计模式是什么、UML类图

设计模式的历史

设计模式就是前辈们在软件开发过程中,对常见问题总结出的最佳解决方案

1995 年,GoF(Gang of Four,四个基友)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称「GoF设计模式」。

他们所提出的设计模式主要是基于以下的面向对象设计原则。

  • 对接口编程而不是对实现编程。
  • 优先使用对象组合而不是继承。

具体设计原则有:单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则。

参考:面向对象编程中的6大设计原则 - AI大胜 - 博客园 (cnblogs.com)

代码的可维护性、可扩展性、可复用性

《大话设计模式》中是用“活字印刷术”来解释的,很有意思,我就把我get到的文绉绉的来表述一下:

  • 可维护性是针对人来说的,其中可读性是一方便。某个地方不满足要求了,但能很快定位到是哪些代码段,并能换上新的代码,且改完后与其它代码不冲突,就好比给汽车换轮子一样方便。
  • 可扩展性就是建议多面向接口编程、尽量使用依赖注入。
  • 可复用性就是字面意思了,当在别的项目中实现类似功能时,你的代码可以直接copy过来用,或者你的代码可以实现在不同的场景下也能发挥作用等。

当了解并使用了设计模式,也许你的代码水平就从“传统印刷术”变成了“活字印刷术”

UML类图

img

          上图来自《大话设计模式》第一章:UML类图

  • “+”表示public,“-”表示private,“#”表示protected
  • 继承关系用空心三角形+实线,三角指向父类
  • 实现接口用空心三角形+虚线,三角指向接口
  • 关联关系用实线+箭头,表示一个类的字段或属性的类型是另一个类,箭头指向被属性或字段使用的类。
  • 依赖:虚线+箭头。表示一个类的方法中用到了另一个类,箭头指向被依赖的类。
  • 聚合关系用空心菱形+实线+箭头,表示类的字段或者属性的类型是另一个类型的集合(数组或List),箭头指向使用集合的类。
  • 合成(组合)关系用实心菱形+实线+箭头,表示一个类的字段和属性用到另一个类型,且该字段或属性的生命周期完全同类的实例。通常是在构造函数中要初始化这些字段或属性。
符号 关系 描述
空心三角+实线 继承 三角指向父类
空心三角+虚线 实现接口 三角指向接口
实线+箭头 关联 一个类的字段或属性用到了另一个类,箭头指向另一个类
虚线+箭头 依赖 一个类的方法的参数或方法体中用到了另一个类,箭头指向另一个类
空心菱形+实线+箭头 聚合 类的字段或者属性的类型是另一个类型的集合(数组或List),箭头指向另一类型
实心菱形+实线+箭头 合成(组合) 一个类的字段和属性用到另一个类型,且该字段或属性的生命周期完全同类的实例。通常是在构造函数中要初始化这些字段或属性。

UML工具

貌似processon就挺好的。


更新于:2023.5.27

posted @ 2023-05-27 14:51  AI大胜  阅读(15)  评论(1编辑  收藏  举报