设计模式可以分为三大类:
- 创建型模式(Ceeational Patterns)
- 结构型模式(Structural Patterns)
- 行为型模式(Behavioral Patterns)
创建型模式
创建型模式抽象了实例化过程。
提供了创建对象的同时隐藏创建逻辑的方式,不使用new方式实例化对象。帮助系统独立于如何创建、组合和表示它的那些对象。
创建型模式关注对象的创建,将创建对象的过程进行抽象和封装,作为客户端需要使用对象,不用关心对象的创建过程。
创建型模式包括:
- 工厂模式(Factory pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 单例模式(Singleton Patern)
- 创建者模式(Builder Pattern)
- 原型模式(Prototype Pattern)
结构型模式
结构型模式关注类和对象的组合。
采用继承机制来组合接口或实现。
结构型对象模式不是对接口和实现组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法。在运行时改变对象组合关系,所以对象组合方式具有更大的灵活性,而这种机制用静态类组合是不可能实现的。
结构型模式包含很多问题解决。如:扩展性,封装。如何设计对象结构、继承和依赖关系影响到后续程序的维护性、代码的健壮性、耦合性等。
结构型模式包含:
- 适配器模式(Adapter Pattern)
- 桥接模式(Bridge Pattern)
- 过滤器模式(Filter Pattern)
- 组合模式(Composition Pattern)
- 装饰器模式(Decorator Pattern)
- 外观模式(Facade Pattern)
- 代理模式(Proxy Pattern)
- 享元模式(Flyweight Pattern)
行为模式
行为模式设计算法和对象之间职责的分配。
行为模式不仅仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻划了在运行时难以跟踪的复杂的控制流。它们将注意力从控制流程转移到对象间的联系方式上。
行为类模式使用继承机制在类间分派行为。
行为对象模式使用对象复合而不是继承。一些行为对象模式描述了一组对等的对象如何相互协作以完成其中一个对象都无法单独完成的任务。对等对象可以通过保持显示的对对方的引用,这回增加它们的耦合度。
行为模式包含:
- 责任链模式(Chain of Responsibility Pattern)
- 命令模式(Command Pattern)
- 解释器模式(Interpreter Pattern)
- 迭代器模式(Iterator Pattern)
- 中介者模式(Mediator Pattern)
- 备忘录模式(Memento Pattern)
- 观察者模式(Observer Pattern)
- 状态模式(State Pattern)
- 空对象模式(Null Object Pattern)
- 策略模式(Strategy Pattern)
- 模板模式(Template Pattern)
- 访问者模式(Visitor Pattern)
image.png