网站大量收购闲置独家精品文档,联系QQ:2885784924

§6软件设计模式6Lesson5章节.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五课 备忘录模式、观察者模式与职责链模式 中介者模式(续) 参与者 Mediator:抽象中介者 ConcreteMediator:具体中介者 Colleague:抽象同事类 ConcreteColleague:具体同事类 中介者模式(续) 模式解释 中介者模式最大的优点是解决复杂对象交互问题。 最常见的对象交互是:事件 中介者模式(续) 模式解释 中介者的职责 中转作用(结构性) 协调作用(行为性) 中介者模式(续) 实例分析 实例:模拟聊天室 中介者模式(续) 实例分析 实例:模拟聊天室(代码实现) 中介者模式(续) 模式优缺点 中介者模式可以达到如下效果: 简化了对象协议。 将各同事解耦。 减少子类生成。 行为型模式 行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。行为模式,考虑的是一个对象或者类的某个行为如何实现?结构模式,考虑的是类和类,对象和对象之间怎样组合。 最终都是实现一定的行为。 行为模式分为类的行为模式和对象的行为模式两种: 类的行为模式:类的行为模式使用继承关系在几个类之间分配行为。 对象的行为模式:对象的行为模式则使用对象的聚合来分配行为。 行为模式(续) 行为模式: 备忘录模式(Memento) 观察者模式(Observer) 职责链模式(Chain of Responsibility) 迭代器模式(Iterator) 状态模式(State) 策略模式(Strategy) 中介者模式(Mediator) 访问者模式(Visitor) 命令模式(Command) 模板方法模式(Template Method) 解释器模式(Interpreter ) 备忘录模式(续) 模式定义 备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。该模式别名为Token。 一个游戏,玩了一段时间之后要存盘,下次玩了一会,可以载入以前存盘的状态,怎么作?存盘相当于备忘录。 一个长方形对象有长和宽属性,可以不断变化,要求将某个时刻的状态(长和宽)保存起来,下次变化之后,可以重新载入这个状态。复位 可以用原型模式来克隆吗?可以!但是,有时候,保存的内容只是对象的一部分。不能原型模式 在Word内,可以对操作进行回退(取消) 备忘录模式(续) 模式结构 备忘录模式(续) 参与者 Originator:原发器 Memento:备忘录 Caretaker:负责人 备忘录模式(续) 模式解释 备忘录模式(续) 实例分析 实例:用户注册信息的撤销 备忘录模式(续) 实例分析 实例:用户注册信息的撤销(代码实现) 备忘录模式(续) 模式优缺点 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原。 备忘录模式保存了封装的边界信息,一个Memento对象是一种原发器对象的表示,不会被其它代码改动,这种模式简化了原发器对象,Memento只保存原发器的状态,采用堆栈来存储备忘录对象可以实现多次取消操作。 备忘录模式的最大缺点就是资源消耗过大,如果类的成员变量太多,就不可避免占用大量的内存了,而且每保存一次对象的状态都需要消耗内存资源,如果知道这一点大家就容易理解为什么一些提供了Undo功能的软件在运行时需要的内存和硬盘空间比较大了。 备忘录模式(续) 模式使用 在以下情况下可以使用备忘录模式: 必须保存一个对象在某一个时刻的状态/部分状态,这样以后需要时它能够恢复到先前的状态。 如果一个用接口来让其它对象得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。 备忘录模式(续) 模式应用 Undo功能 配置文件 Cookie Session对象 简单的JSP应用 用备忘录模式完成连续的状态恢复(你的程序应该能将所有保存过的状态按顺序恢复): 课堂练习 备忘录模式中有哪些参与者,简述其职责。 在一个Web系统中,如果希望在保存一些客户端的个性化设置,如背景图像的设置、布局、字体等,可以采用哪些解决方案? 以下代码实现了多次Undo操作,分析并理解其实现过程。 (代码见教材) 观察者模式 观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/Vi

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档