设计模式的概念最早是由 克⾥斯托佛·亚历山大 在其著作 《建筑模式语⾔》 中⾸次提出的。
设计模式是由多年的经验提炼出来开发指导思想,它经历了很长一段时间的发展,它们提供了软件开发过程中面临的一般问题的最佳解决方案。是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。
设计模式遵循六
大原则:
- 单⼀职责:⼀个类和⽅法只做⼀件事 。
- 开闭原则:对扩展(继承)开放,对修改关闭。
- 里氏替换:继承必须确保超类中所拥有的性质在子类中依然成立 。即:父类出现的地方都可以使用子类来替换。
- 依赖倒置:面向接口编程,不要面向实现编程。
- 接口隔离:为各个类建立它们需要的专用接口,建立单⼀接口 。
- 迪米特原则:只与直接朋友交谈,不跟陌生人说话,降低耦合 。
比OOP
的7
大原则少一个合成复用原则。
- 合成复用原则:尽量先使用组合或者聚合等关联实现,其次才考虑使用继承关系来实现。
这些模式可以分为三大类:创建型模式、结构型模式、行为型模式。
1. 创建型模式(5类)
这类模式提供创建对象的机制(在创建对象的同时隐藏创建逻辑的方式,而不是使用 new
运算符直接实例化对象。), 能够提升已有代码的灵活性和可复⽤性。
创建者模式包括:
- 工厂模式(
Factory Pattern
) - 抽象工厂模式(
Abstract Factory Pattern
) - 建造者模式(
Builder Pattern
) - 原型模式(
Prototype Pattern
) - 单例模式(
Singleton Pattern
)
2. 结构型模式(7类)
这类模式介绍如何将对象和类组装成较⼤的结构, 并同时保持结构的灵活和⾼效。也就是说,它关注类和对象的组合。
结构型模式包括:
- 适配器模式(
Adapter Pattern
) - 桥接模式(
Bridge Pattern
) - 组合模式(
Composite Pattern
) - 装饰器模式(
Decorator Pattern
) - 外观模式(
Facade Pattern
) - 享元模式(
Flyweight Pattern
) - 代理模式(
Proxy Pattern
)
3. 行为型模式(11类)
这类模式负责对象间的高效沟通和职责委派,特别关注对象之间的通信。
行为型模式包括:
- 模板模式(
Template Pattern
) - 命令模式(
Command Pattern
) - 迭代器模式(
Iterator Pattern
) - 观察者模式(
Observer Pattern
) - 中介者模式(
Mediator Pattern
) - 备忘录模式(
Memento Pattern
) - 解释器模式(
Interpreter Pattern
) - 状态模式(
State Pattern
) - 策略模式(
Strategy Pattern
) - 责任链模式(
Chain of Responsibility Pattern
) - 访问者模式(
Visitor Pattern
)