第4节 行为模式.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 行为模式 课程目标 Observer模式 Iterator模式 Strategy模式 Template模式 Visitor模式 Chain of Responsibility模式 Command模式 其他模式,如Interpreter模式、Mediator模式等 体验项目——实现在窗体中使用鼠标的画图功能 本章体验项目的主要功能是使用Command模式实现窗体中鼠标画图功能,该程序主要由以下几个部分组成: 行为模式概述 Chain of Responsibility模式 Chain of Responsibility模式结构图 职责链模式结构图如下: Chain of Responsibility模式示例 职责链模式优势和不足 Command模式 Command模式结构图 命令模式结构图如下: Command模式示例 Command模式优势和不足 Iterator模式 Iterator模式结构图 迭代器模式结构图如下: Iterator模式示例 Iterator模式优势和不足 Observer模式 Observer模式结构图 观察者模式结构图如下: Observer模式示例 Observer模式优势和不足 Strategy模式 Strategy模式结构图 策略模式结构图如下: Strategy模式示例 Strategy模式优势和不足 Template Method模式 Template Method模式结构图 模板方法模式结构图如下: Template Method模式示例 Template Method模式优势和不足 Visitor模式 Visitor模式结构图 访问者模式结构图如下: java动态代理类 Visitor模式示例 Visitor模式优势和不足 其他模式--Interpreter模式 Mediator模式 Memento模式 State模式 实践项目——使用Command模式实现窗体中鼠标画图功能 程序的实现要求如下: (1)创建命令接口和具体命令; (2)创建请求接口和具体接受者。 本章总结 Observer模式 Iterator模式 Strategy模式 Template模式 Visitor模式 Chain of Responsibility模式 Command模式 其他模式,如Interpreter模式、Mediator模式等 Visitor(访问者):为对象结构中ConcreteElement的每一个类声明一个访问操作。使得访问者可以确定正被访问元素的具体类。这样访问者就可以通过该元素的特定接口直接访问该类。 ConcreteVisitor(具体访问者):实现Visitor接口,每个操作实现本算法的一部分,而该算法片断仍是对应于结构中对象的类。ConcreteVisitor为该算法提供了上下文并存储它的局部状态。 Element(元素):定义一个accept()方法,并以一个访问者为参数。 ConcreteElement(具体元素):实现Element接口,并实现其accept()方法,在该方法中通过一个访问者参数来通知该访问者它是否可被访问。并将自己传递给访问者。 ObjectStructure(对象结构):提供一个高层的接口以允许该访问者访问它的元素,可以是一个复合对象或是一个集合。 interface Visitable { public void accept(Visitor visitor); } class StringElement implements Visitable { private String value; public StringElement(String string) { value = string; } public String getValue( ) { return value; } public void accept(Visitor visitor) { visitor.visitString(this); } } interface Visitor { public void visitString(StringElement stringE); public void visitFloat(FloatElement floatE); public void visitCollection(Collection collection); } import java.util.*; class ConcreteVisitor implements Visitor { //实现对Collectio

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档