设计模式学习笔记(三):模式的分类

来源:互联网 发布:reveal.js markdown 编辑:程序博客网 时间:2024/04/29 13:55

模式的分类

模式依据其目的可分为创建型(Creational)、结构型(Structural)、或行为型(Behavioral)三种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式描述类或对象之间的职责分配和交互

根据范围准则,模式可分为类模式和对象模式。类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的,由编译时确定。对象模式处理对象间的关系,这些关系在运行时刻是可变化的,更具动态性。从某种意义上来说,几乎所有模式都使用继承机制,所以“类模式”专指那些集中于处理类间关系的模式,而大部分模式都属于对象模式的范畴。

分类如下:

 

创建型

结构型

行为型

Factory Method

Adapter()

Interpreter;

Template Method

对象

Abstract Factory;

Builder;

Prototype;

Singleton

-----------------------

Object Factory

Object Pool

Creation Method

Adapter(对象);

Bridge;

Composite;

Decorator;

Façade;

Flyweight;

Proxy

Chain of Responsibility;

Command;

Iterator;

Mediator;

Memento;

Observer;

State;

Strategy;

Visitor

 

    说明:

创建型类模式对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中。结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组合方式。行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象如何协作完成单个对象所无法完成的任务。

还有其他组织模式的方式。有些模式经常会被绑在一起使用,例如,Composite常和Iterato rVisitor一起使用;有些模式是可替代的,例如,Prototype常用来替代Abstract Factory;有些模式尽管使用意图不同,但产生的设计结果是很相似的,例如,CompositeDecorator的结构图是相似的。

 

待续......