设计模式分类
在软件开发中,一个设计模式是一种通用的解决问题的方法。它被认为是许多常见问题的解决方案。使用设计模式可以大大提高软件的可维护性,可伸缩性和可重用性。设计模式可分为三大类:创建型模式,结构型模式和行为型模式。
一、创建型模式
创建型模式处理对象的实例化方式,通过隐藏对象实例化的细节来帮助开发人员更好地设计体系结构。包括以下模式:
1.单例模式:用于限制一个类只有一个实例。
2. 工厂模式:通过公共接口来创建对象,而不是使用new运算符。
3. 抽象工厂模式:提供一种创建一系列相关或相互依赖对象的接口。
4. 建造者模式:将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
5. 原型模式:通过克隆现有对象来创建新对象。
二、结构型模式
结构型模式处理对象之间的关系,这些关系有助于解决问题,例如如何实现类的继承或如何组合对象。包括以下模式:
1. 适配器模式:将一个类的接口转换成客户端希望的接口。
2. 桥接模式:将一个抽象类的实现与其所依赖的对象的实现分离。
3. 代理模式:为其他对象提供一个代理以控制对这个对象的访问。
4. 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。
5. 装饰器模式:在不改变对象接口的前提下,动态地给一个对象增加功能。
6. 外观模式:为系统中的一组接口提供一个一致的界面。
7. 享元模式:通过共享技术有效地支持大量细粒度的对象。
三、行为型模式
行为型模式处理对象之间的通信,帮助开发人员描述对象之间的相互作用,使他们更加清晰和易于维护。包括以下模式:
1. 职责链模式:为对象链提供了一种处理请求的机制。
2. 命令模式:将请求封装成一个对象以便于使用不同的请求,队列或日志请求等。
3. 解释器模式: 定义语言文法接口,以解释开发人员定义语言中的句子。
4. 迭代器模式:提供访问对象的元素的统一方式。
5. 中介者模式:定义对象之间的通信方式,使对象之间松耦合。
6. 备忘录模式:不破坏封装原则的情况下,保存对象的内部状态。
7. 观察者模式:定义对象之间的通信方式,使对象之间松耦合。
8. 状态模式:当一个对象的状态改变时,允许改变其行为。
9. 策略模式:定义一系列算法,将每个算法都封装起来,使它们可以相互替换。
10. 模板方法模式:定义算法的框架,将一些步骤推迟到子类中实现。