全面教程: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、合成复用原则
多组合,少继承