第七章行为型设计模式综述.ppt

  1. 1、本文档共198页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 行为型设计模式;目录 【7.1】 模板方法模式(Template method) 7.2 观察者模式(Oberserver) 【实验】 【7.3】 迭代子模式(Iterator) 7.4 责任链模式(Chain of Responsibility)【实验】 7.5 备忘录模式(Memento) 【实验】 7.6 命令模式 (Command) 【实验】 7.7 状态模式(State) 【7.8】 访问者模式(Visitor) 【7.9】 中介者模式(Mediator) 【7.10】 策略模式(Strategy) ;7.1 模板方法(Template Method)模式;7.1.1 模板方法模式的由来;7.1.1 模板方法模式的由来;7.1.1 模板方法模式的由来;;;7.1.1 模板方法模式的由来;7.1.1 模板方法模式的由来;7.1.2 模板方法模式的意图和适用性;7.1.2 模板方法模式的意图和适用性;模板方法模式中的两种方法;摸板方法(Template Method)模式小结;7.1.3 模板方法模式的结构和参与者;7.1.3 模板方法模式的结构和参与者;教材上的应用举例;7.1.4 应用举例;7.1.4 应用举例;7.1.4 应用举例;7.1.4 应用举???;实用例子;7.1.5 效果分析;关于继承的讨论;7.2 观察者模式(Oberserver) 【实验】 ;7.2.1 观察者模式的由来;7.2.1 观察者模式的由来;7.2.1 观察者模式的由来;7.2.2 观察者模式的意图和适用性 模式的意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 ;7.2.2 观察者模式的意图和适用性;7.2.3 观察者模式的结构和参与者 观察者模式结构图 ;7.2.3 观察者模式的结构和参与者 Observer Subject(目标) 目标知道它的观察者。可以有任意多个观察者观察同一个目标。 提供注册和删除观察者对象的接口。 Observer(观察者) 为那些在目标发生改变时需获得通知的对象定义一个更新接口。 Concrete Subject(具体目标) 将有关状态存入各Concrete Observer对象。 当它的状态发生改变时, 向它的各个观察者发出通知。 Concrete Observer(具体观察者) 维护一个指向Concrete Subject对象的引用。 存储有关状态,这些状态应与目标的状态保持一致。 实现Observer的更新接口以使自身状态与目标的状态保持一致。;7.2.4 应用举例 例如:班主任老师有电话号码,学生需要知道班 主任老师的电话号码以便于在合适时的时候拨打,在 这样的组合中,老师就是一个被观察者(Subject), 学生就是需要知道信息的观察者,当老师的电话号码 发生改变时,学生得到通知,并更新相应的电话记 录。该应用的类图如下图所示。;应用举例 ;7.2.4 应用举例 相关代码: Subject代码: package observer; public interface Subject{ //目标类的定义 public void attach(Observer o); //注册一个观察者 public void detach(Observer o); //删除一个观察者 public void notice(); //通知所有观察者更新 } Observer代码: package observer; public interface Observer{ //观察者类定义 public void update(); //更新观察者 };7.2.4 应用举例 Teacher代码; package observer; import java.util.Vector; public class Teacher implements Subject{ private String phone; //电话号码 private Vector students; //学生 public Teacher(){ phone = ; students = new Vector(); } public void attach(Observer o){ students.add(o);//注册学生 } ;7.2.4 应用举例 Student代码: package observer; public class Student implements O

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档