设计模式分组
GoF设计模式著作中的23种设计模式分为3组:创建型(Creational)、结构型(Structural)和行为型(Behavional)。
创建型
创建型处理对象构造和引用。它们将对象实例的实例化责任从任何客户代码中抽象出来,从而让代码保持松散耦合,将创建负责对象的责任放到一个地方,这遵循了单一职责原则和分离关注点原则。
下面是“创建型”分组中的模式。
- Abstract Factory(抽象工厂)模式:提供一个接口来创建一组相关的对象。
- Factory Method(工厂方法)模式:支持使用一个类来委托创建有效对象的责任。
- Builder(生成器)模式:将对象本身的构造分离出来,从而能够创建对象的不同版本。``
- Prototype(原型)模式:能够从一个原型实例来复制或克隆类,而不是创建新实例。
- Singleton(单例)模式:支持一个类只能实例化一次,并且只有一个可用来访问它的全局访问点。
结构型
结构型模式处理对象的组合与关系,以满足大型系统的需要。
下面是“结构型”分组中的模式。
- Adapter(适配器)模式:使不兼容接口的类能够一起使用。
- Bridge(桥接)模式:将抽象与其实现分离,允许实现和抽象彼此独立地改变。
- Composite(组合)模式:可以像对待对象的单个实例那样来对待一组表示层次结构的对象。
- Decorator(装饰器)模式:能够动态包装一个类并扩展其行为。
- Facade(门面)模式:提供一个简单的接口并控制对一组复杂接口和子系统的访问。
- Flyweight(享元)模式:提供一种在许多小类之间高效共享数据的方式。
- Proxy(代理)模式:为一个实例化成本很高的更复杂的类提供一个占位符。
行为型
行为型模式处理对象之间在责任和算法方面的通信。这个分组中的模式将复杂行为封装起来并将其从系统控制流程中抽象出来,这样就是复杂系统更容易理解和维护。
下面是下“行为型”分组中的模式。
- Chain of Responsibility(责任链)模式:允许将命令动态链接起来处理请求。
- Command(命令)模式:将一个方法封装成一个对象,并将该命令的执行与它的调用者分离。
- Interpreter(解释器)模式:指定如何执行某种语言中的语句。
- Iterator(迭代器)模式:提供以形式化的方式来导航集合的方法。
- Midiator(中介者)模式:定义一个对象,可以让其它两个对象进行通信而不必让它们知道彼此。
- Memento(备忘录)模式:允许将对象恢复到以前的状态。
- Observer(观察者)模式:定义一个或多个类在另一个类发生变化时接到报警。
- State(状态)模式:允许对象通过委托给独立的、可改变的状态对象来改变自己的行为。
- Strategy(策略)模式:能够将算法封装到一个类中并在运行时转换,以改变对象的行为。
- Template Method(模板方法)模式:定义算法流程控制,但允许子类重写或实现执行步骤。
- Visitor(访问者)模式:能够在类上执行新的功能而不影响类的结构。
各种设计模式意图、UML图、代码实现后续~~~