什么是设计模式?
设计模式是前人总结下来的设计经验与理念,良好运用设计模式可以使产品开发少走弯路。设计模式的优点:代码复用率高,逻辑清晰,避免冗余代码。1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称「GoF设计模式」。
设计模式的六大原则:
1、开闭原则:“对扩展开放,对修改关闭”,也就是扩展功能的时候应该尽量的不修改原有的代码。
2、里氏代换原则:基类都可以被派生类替换,并使用基类的任何功能,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
3、依赖倒转原则:这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则:把不同功能的接口隔离开可以降低类之间是耦合度,便于维护,这也是面向对象的重要思想。
5、迪米特法则(最小知道原则):一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、合成复用原则:尽量使用合成/聚合的方式,而不是使用继承。继承会增加类之间的耦合度,尤其是多继承会使结构更加复杂。
设计模式分为三大类:
创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
结构型模式:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
思维导图如下: