设计模式分类

经典的《设计模式》一书归纳出23种设计模式:

一、根据目的准则分类 

    就是说,指定的模式用来完成什么样的工作。可分为三种:

    (1) Creational (创建型):与对象创建有关。

    (2) Structural (结构型):处理类或对象的组合。

    (3) Behavioral (行为型):描述类或对象如何交互及如何分配职责。

二、根据范围准则分类 

    即指定的模式用于类还是用于对象,分为两种:

    (1) 模式:用于处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时就已经确定下来了。因为从某种意义上说,几乎所有模式都是使用继承机制,因此此处的“类模式”是指集中处理类间关系的模式,只有很少部分模式属于此类。

    (2) 对象模式:用于处理对象间的关系,这些关系具有动态性,在运行期间是可以变化的。

 

范围\目的 Creational (创建型) Structural (结构型)   Behavioural (行为型)
Simple Factory Adapter (class) Interpreter
Factory Method Template method
对象 Abstract Factory Adapter (object) Chain of Responsibility
Builder Bridge Command
Prototype Composite Iterator
Singleton Decorator Mediator
Facade Memento
Flyweight Observer
Proxy State
Strategy
Visitor

详细分类:
1.创建型模式

社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:

简单工厂模式(Simple Factory);

工厂方法模式(Factory Method);

抽象工厂模式(Abstract Factory);

创建者模式(Builder);

原型模式(Prototype);

单例模式(Singleton)。

说明:严格来说,简单工厂模式不是GoF总结出来的23种设计模式之一

 

2.结构型模式

在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:

外观模式(Facade);

适配器模式(Adapter);

代理模式(Proxy);

装饰模式(Decorator);

桥模式(Bridge);

组合模式(Composite);

享元模式(Flyweight)。

 

3.行为型模式

在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:

模板方法模式(Template Method);

观察者模式(Observer);

状态模式(State);

策略模式(Strategy);

职责链模式(Chain of Responsibility);

命令模式(Command);

访问者模式(Visitor);

调停者模式(Mediator);

备忘录模式(Memento);

迭代器模式(Iterator);

解释器模式(Interpreter)。

 

你可能感兴趣的:(设计模式,分类)