设计模式目录

 

此目录包含23个设计模式,在这里仅列出其命名(Name)和意图(Intent)。

Abstract Factory 抽象工厂

提供一个接口,在不说明具体类的情况下建立具有相关性或依赖关系的对象族。

Adapter 适配器

将某个类的接口转换成客户所期望的另一个接口。适配器可使得接口本来不匹配的类在一起工作。

Bridge 桥接

 

Builder 建造器

将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。

Chain of Responsibility 责任链

通过不止一个对象有机会处理请求的方式,消除发送者和接受者之间的耦合。将接受者对象组成链,请求发送到链,直到有对象处理

Command 命令

将请求封装成一个对象,这样可通过不同的请求来确定客户的参数,从而执行操作。

Composite 合成器

将对象组织成树结构从而表示部分-整体的层次关系。合成器模式可以使客户能够使用统一的方式来处理个体对象和合成对象。

Decorator 装饰器

给对象动态添加额外的职责。装饰器模式为子类扩展功能提供灵活的选择。

Façade 门面模式

为子系统的一系列接口提供一个统一的接口。此模式通过提供高一层的接口使得子系统更易用。

Factory Method 工厂方法

定义一个创建对象的接口,而让子类来决定实例化哪一个类。工厂方法使得子类实例化的过程推迟。

Flyweight 轻量模式

通过共享

Interpreter 解释器

 

Iterator 迭代

提供一种方法,可顺序访问对象的元素而不需要暴露对象的底层表示。

Mediator 解调器

定义一个对象来掩盖一系列对象的交互。通过不让对象显式引用,解调器模式促进了松散耦合,并使得可独立的改变交互。

Memento 纪念品模式

在不违反封装的情况下,捕获对象的内部状态,使得对象以后能保存这一状态。

Observer 观测者

在对象间建立一对多的依赖关系,当一个对象状态改变时,它的所有依赖对象能够感受到这种改变并能自动更新。

Prototype 原型模式

详细说明对象的类型,用原型化实例建立对象,通过拷贝这个原型来创建新对象。

Proxy 代理模式

提供一个代用品或占位符,使得其他对象能够通过对它的访问来控制实际对象。

Singleton 独身模式

保持一个类只有一个实例,并提供一个全局访问点。

State 状态模式

允许对象在内部状态改变时改变其行为。对象似乎能改变它所属的类。

Strategy 策略模式

定义一组算法,并对每一个都进行封装,使得它们可以在内部进行替换。策略模式使得客户所用的算法能够独立改变。

Template Method 模版方法

在一个操作中定义算法的纲要,将某些步骤延迟到子类中实现。模版方法使得子类能够在不改变算法结构的情况下,重新定义算法的某些步骤。

Visitor 访问者

 

模式的组织

各种设计模式在其粒度和抽象级别上各不相同。因为有很多的设计模式,我们需要通过某种方式来组织它们。此部分对设计模式进行分类,以便于找出相关的设计模式,而且有利于发现新的设计模式。

我们以两个标准来对设计模式进行分类。其中一个标准,称为目的(Purpose),反映了这个设计模式是干什么的。根据其目的(Purpose),模式可分为创建(Creational)、结构(Structural)、和行为(Behavioral)。“创建性模式”关心对象的创建过程;“结构性模式”涉及类和对象的组成;“行为性模式”刻画了类和对象交互及分配职责的方式。

第二个标准,称为范围(Scope)。范围描述了模式主要是应用于对象,还是主要应用于类。“类模式”主要处理类与其子类的关系,这种关系是通过继承得来的,因此它们是静态-固定、由编译时决定的;“对象模式”处理对象关系,这种关系是运行时决定的,是动态关系。几乎所有的模式都在某种程度上使用了继承,因此只有那些标明为“类模式”的模式才重点关注类关系,大多数模式都在“对象模式”范畴。

 

“创建性类模式”将部分的对象创建工作延迟到了子类,而“创建性对象模式”将其延迟到了另外的对象。“结构性类模式”应用继承机制来合成类,而“结构性对象模式”则规定了装配对象的方式。行为性类模式用继承机制来描述算法和控制流,而行为性对象模式则规定一组对象如何合作以完成某项单一对象不能达成的任务。

组织模式有另外的方式。有些模式通常在一起使用,例如,合成模式通常与重复模式或访问者模式一同使用。有些设计模式是可替换的,如原型模式常常替换抽象工厂模式。有些设计模式的设计是相似的,虽然它们各有不同的意图,如合成模式与装饰模式的结构图非常相似。

另一种组织设计模式的方式就是按照它们在“相关模式”部分如何彼此涉及。下图描述了这些关系。

 

设计模式之间的关系

 

很显然,有多种方式来组织设计模式。拥有多种模式来考虑模式将加深对模式的理解,如该模式是干什么的、模式之间如何比较、何时运用该模式?等等

http://blogger.org.cn/blog/more.asp?name=torrent&id=6725

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值