昨天到图书馆详解一本讲解spring源码的书看看,偶然看到了这本《设计模式》的书,正好本来也有设计模式的学习计划,就顺便借了过来。

本文相当于一篇读书笔记吧,不会非常详细的记录,主要记录一些之前没注意的小点。

设计模式

UML

主要学习了类图与顺序图

类图

权限修饰符:

  • public: +
  • private: -
  • protected: #
  • default: *

类之间的关系

  • 聚合:空心菱形(车与轮胎)
  • 组合:实心菱形(通常在一个类中声明另一个类)
  • 继承:三角实线
  • 接口:三角虚线
  • 依赖:虚线

顺序图

类似于这种,比较简单,不难理解
image.png

面向对象设计原则

开闭原则

在不修改源代码的前提下对模块进行扩展
就像spring里写xml配置文件,然后通过反射创建对象

里氏代换原则

可以通过子类继承父类的方式来实现开闭原则/

依赖倒转原则

实现开闭原则的主要机制
即面向接口编程

依赖注入

此节降到了依赖注入的相关内容,处理常规的构造注入和setter方法注入(这两种注入方式需要在实现类中添加需要注入的相关属性)。
除此之外,还有一个接口注入的方式,通过这种方式,可以实现,不在类中添加相关属性。(《设计模式》p37)

接口隔离

可以理解为细化接口(大化几个小)

合成复用原则

尽量使用组合/聚类,而不是继承

迪米特法则

实例:为了降低界面类与数据访问类的之间的耦合,在他们中间加一层控制类。

Q.E.D.