全面教程:http://c.biancheng.net/view/1317.html

菜鸟教程:https://www.runoob.com/design-pattern/design-pattern-tutorial.html

常见的设计模式分为三大类,共 23 个:

创建型模式,共五种:

  • 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:

  • 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:

  • 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

Spring:

  • 工厂方法模式(重要)
  • 单例模式
  • 代理模式

设计原则:

https://www.cnblogs.com/dolphin0520/p/3919839.html

1、单一职责原则

2、开闭原则

对修改封闭,对扩展开放

3、里氏替换原则

任何使用父类的地方,可以替换成子类的实现。
即使用父类引用,不要使用子类引用

4、依赖倒置原则

抽象不应该依赖于细节,细节应当依赖于抽象。
即变量声明尽量使用接口或父类。以及依赖注入,将子类注入到父类引用

5、接口隔离原则

使用多个专门的接口,而不是使用一个多功能的接口。
将大接口分隔,实现者只需要去实现相关的接口即可。

6、迪米特法则/最少知道原则

一个软件实体应当尽可能少地与其他实体发生相互作用。降低类与类之间地耦合
可以引入中间类来解耦

7、合成复用原则

多组合,少继承