行为模式

2017-04-04 18:29:00   最后更新: 2017-04-04 18:37:42   访问数量:216




正如此前我们介绍的,设计模式分为三种:

创建型模式

结构型模式

行为模式

 

本章节我们就来学习行为模式

 

行为模式涉及到算法和对象职责的分配,他描述了对象或类的模式,同时还描述了他们之间的通信模式,从而描述了在运行时难以跟踪的复杂控制流

行为模式共有 11 种:

  • 职责链模式 -- ChainOfResponsibility
  • 命令模式 -- Command
  • 解释器模式 -- Interpreter
  • 迭代器模式 -- Iterator
  • 中介者模式 -- Mediator
  • 备忘录模式 -- Memento
  • 观察者模式 -- Observer
  • 状态模式 -- State
  • 策略模式 -- Strategy
  • 模板方法模式 -- TemplateMethod
  • 访问者模式 -- Visitor

 

在此前的综述中,我们介绍过,除了 Interpreter 与 TemplateMethod 两个作用于类的模式外,其他模式都是作用于对象的

设计模式概述

 

类行为模式

  • Interpreter 与 TemplateMethod

Interpreter 与 TemplateMethod 两个模式使用继承机制在类间分派行为

模板方法模式较为简单和常用,他是一个算法的抽象定义,逐步定义该算法,每一步调用一个抽象操作,子类定义抽象操作从而实现相应的算法

解释器模式则是讲一个文法表示为一个类层次,从而逐步实现一个解释器

 

用于对象间解耦的对象行为模式

其他的模式与这两种模式最大的区别在于他们通过对象复合而不是继承实现

在面向对象程序设计中,一个重要的问题就是对等的对象如何相互了解对方,如果显式保存对方的引用,将会增加对象间的耦合度,下面介绍的几个模式用不同的方式解决了这个问题

 

  • Mediator

中介者模式通过在对等对象间引入一个 mediator 对象解决了这个问题,它提供了松耦合需要的间接性

 

  • ChainOfResponsibility

ChainOfResponsibility 通过一条候选对象链隐式向一个对象发送请求从而实现了更松的耦合

他可以根据运行时的情况来让链条上的任一后选择响应相应的请求

 

  • Observer

Observer 模式定义并保持对象间的依赖关系,一旦模型的状态发生变化,模型的所有视图将都会得到通知

 

用于行为指派的对象行为模式

下面介绍的设计模式用于将行为封装在一个对象中,并将请求指派给他

 

  • Strategy

策略模式将算法封装在对象中,这样可以方便地制定和改变一个对象所使用的算法

 

  • Command

Command 模式则是将请求封装在对象中,从而让请求可以作为参数被传递,也可以被存储在历史列表中

 

  • State

状态模式封装一个对象的状态,使得对象状态变化时可以改变该对象的行为

 

  • Visitor

观察者模式封装了分布于多个类之间的行为

 

  • Iterator

迭代器模式抽象了集合中对象的遍历和访问行为

 






读书笔记      技术帖      龙潭书斋      设计模式      design pattern      行为模式     


京ICP备15018585号