设计模式分类
面向对象编程中,设计模式是一种解决特定问题的通用解决方案。Java 的 23 种设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。以下是每种设计模式及其分类:
创建型模式 (Creational Patterns)
- 单例模式 (Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。
- 原型模式 (Prototype Pattern):通过复制现有对象来创建新对象。
- 工厂方法模式 (Factory Method Pattern):定义一个创建对象的接口,但让子类决定实例化哪个类。
- 抽象工厂模式 (Abstract Factory Pattern):提供一个接口来创建一系列相关或依赖的对象,而无需指定它们的具体类。
- 建造者模式 (Builder Pattern):将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。
结构型模式(Structural Patterns)
- 适配器模式 (Adapter Pattern):将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作。
- 桥接模式 (Bridge Pattern):将抽象部分与实现部分分离,使它们可以独立变化。
- 组合模式 (Composite Pattern):将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户可以统一地对待单个对象和组合对象。
- 装饰器模式 (Decorator Pattern):动态地给对象添加职责,通过创建一个装饰类来包装原始类。
- 外观模式 (Facade Pattern):为子系统中的一组接口提供一个一致的界面,使得子系统更容易使用。
- 享元模式 (Flyweight Pattern):使用共享对象来有效地支持大量细粒度的对象。
- 代理模式 (Proxy Pattern):为另一个对象提供一个代理以控制对这个对象的访问。
行为型模式 (Behavioral Patterns)
- 责任链模式 (Chain of Responsibility Pattern):将请求沿着处理链传递,直到有一个对象处理它。
- 命令模式 (Command Pattern):将请求封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。
- 解释器模式 (Interpreter Pattern):给定一个语言,定义其文法的一种表示,并提供一个解释器来处理语言中的句子。
- 迭代器模式 (Iterator Pattern):提供一种方法顺序访问聚合对象中的各个元素,而不暴露其内部表示。
- 中介者模式 (Mediator Pattern):用一个中介对象来封装一系列对象之间的交互,使得这些对象之间不需要显式地相互引用。
- 备忘录模式 (Memento Pattern):在不破坏封装性的前提下,捕获并保存对象的内部状态,以便可以在以后恢复。
- 观察者模式 (Observer Pattern):定义对象之间的一种一对多的依赖关系,使得当一个对象的状态发生变化时,其相关依赖对象皆得到通知并被自动更新。
- 状态模式 (State Pattern):允许对象在内部状态改变时改变其行为,对象看起来似乎修改了它的类。
- 策略模式 (Strategy Pattern):定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。
- 模板方法模式 (Template Method Pattern):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。
- 访问者模式 (Visitor Pattern):表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。
这些设计模式提供了在软件开发中解决特定问题的常用方案,提高了代码的可维护性、可扩展性和重用性。