“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。
直到 1990 年,软件工程界才开始研讨设计模式的话题。
1995年,“四人组”(Gang of Four,GoF)合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书,在书籍中收录了 23 个设计模式,这是设 计模式领域里程碑的事件,导致了软件设计模式的突破。
直到今天,狭义的设计模式还是该书中所介绍的23种经典设计模式。
?
软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、 代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它 是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提 高代码的可重用性、代码的可读性和代码的可靠性。
? ? ? ? 1、单一职责原则(Single Responsibility Principle, SRP)
? ? ? ? 2、开闭原则(Open Close Principle)
? ? ? ? 3、里氏代换原则(Liskov Substitution Principle)
? ? ? ? 4、依赖倒转原则(Dependence Inversion Principle)
? ? ? ? 5、接口隔离原则(Interface Segregation Principle)
? ? ? ? 6、迪米特法则(最少知道原则)(Demeter Principle)
? ? ? ? 7、合成复用原则(Composite Reuse Principle)
? ? ? ? 工厂方法模式
? ? ? ? 抽象工厂模式
? ? ? ? 单例模式
? ? ? ? 建造者模式
? ? ? ? 原型模式
? ? ? ? 适配器模式
? ? ? ? 装饰器模式
? ? ? ? 代理模式
? ? ? ? 外观模式
? ? ? ? 桥接模式
? ? ? ? 组合模式
? ? ? ? 享元模式
? ? ? ? 策略模式
? ? ? ? 模板方法模式
? ? ? ? 观察者模式
? ? ? ? 迭代模式
? ? ? ? 责任链模式
? ? ? ? 命令模式
? ? ? ? 备忘录模式
? ? ? ? 状态模式
? ? ? ? 访问者模式
? ? ? ? 中介者模式
? ? ? ? 解释器模式