设计模式浅谈(种).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式浅谈(种).ppt

行为模式 Chain of Reponsibility(响应链) * 行为模式 Chain of Reponsibility(响应链) 效果 降低了对象间的耦合度。 增强了给对象分配响应(职责)的灵活性。 不保证请求被响应。 实现 后续链的实现 请求的表示:硬编码方式或请求码方式 * 行为模式 Command(命令) 对象行为模式 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤消的操作。 适用性 * 行为模式 Command(命令) 对象行为模式 意图 适用性 抽象出待执行的动作以参数化某对象。Command模式是回调机制的一个面向对象的替代品。 在不同的时刻指定、排列和执行请求。 支持取消操作。 支持修改日志,这样当系统崩溃时,这些修改可以被重做一遍。 用构建在原语操作上的高层操作构造一个系统。 * 行为模式 Command(命令) * 行为模式 角色: 客户(Client)角色:创建了一个具体命令(ConcreteCommand)对象并确定其接收者。 命令(Command)角色:声明了一个给所有具体命令类的抽象接口。这是一个抽象角色。 具体命令(ConcreteCommand)角色:定义一个接受者和行为之间的弱耦合;实现Execute()方法,负责调用接收者的相应操作。Execute()方法通常叫做执方法。 * 行为模式 角色: 请求者(Invoker)角色:负责调用命令对象执行请求,相关的方法叫做行动方法。 接收者(Receiver)角色:负责具体实施和执行一个请求。任何一个类都可以成为接收者,实施和执行请求的方法叫做行动方法。 * 行为模式 Command(行为) * 行为模式 Command(命令) 效果 将调用操作的对象与实现操作的对象解耦。 Command对象也可以被操纵和扩展。 可以将多个Command装配成一个复合Command。 无需改变已有的类,可以容易地增加新Command。 实现 Command对象的智能程度。 对Undo和Redo的支持。 避免Undo操作过程中的错误积累。 在C++中可以用模板来实现简单的Command类。 * 行为模式 Interpreter(解释器) 类行为模式 意图 根据语言的文法,定义一个解释器,用来解释语言中的句子。 适用性 当有一个语言需要解释执行,并且该语言中的句子可以表示为一个抽象语法树时。 当满足以下情况时,解释器模式的效果最好: 文法简单。 效率不是一个关键问题。 * 行为模式 Interpreter(解释器) * 行为模式 AbstractExpression 抽象解释器:声明一个抽象的解释操作,这个接口为所有具体表达式角色(抽象语法树中的节点)都要实现的。具体的解释任务由各个实现类完成,具体的解释器分别由TerminalExpression和NonterminalExpression完成。 TerminalExpression终结符表达式:实现与文法中的元素相关联的解释操作,通常一个解释器模式中只有一个终结符表达式,但有多个实例,对应不同的终结符。 * 行为模式 NonterminalExpression 非终结符表达式:文法中的每条规则对应于一个非终结表达式。非终结符表达式根据逻辑的复杂程度而增加,原则上每个文法规则都对应一个非终结符表达式。 Context 环境角色:包含解释器之外的一些全局信息。 客户角色:构建(或者被给定)表示该文法定义的语言中的一个特定的句子的抽象语法树;调用解释操作 解释器是一个比较少用的模式,以下为其通用源码,可以作为参考。抽象表达式通常只有一个方法,如下所示。 * 行为模式 Interpreter(解释器) 效果 通过对文法规则类的继承和扩展可以方便地改变和扩展文法。 语法树上各节点类的实现大体相似,易于实现文法。 复杂的文法将难以维护。 可以方便地增加新的解释表达式的方式。 实现 抽象语法树的创建。 定义解释操作。 可以使用Flyweight模式共享终结符。 * 行为模式 Iterator(迭代器) 对象行为模式 意图 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 适用性 访问一个聚合对象的内容而无需暴露它的内部表示。 支持对聚合对象的多个和多种遍历。 为遍历不同的聚合结构提供一个统一的接口。 * 行为模式 迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator?it?=?list.iterator(); while(it.hasNext()){ //using?“it.next();”do?some?businesss?lo

文档评论(0)

只做精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档