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

南华大学计算机科学与技术学院软件体系结构与设计模式课件 第8讲.ppt

南华大学计算机科学与技术学院软件体系结构与设计模式课件 第8讲.ppt

  1. 1、本文档共121页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。 在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。 * * * * * * * 变化——是软件设计的永恒主题,如何管理变化带来的复杂性?设计模式的艺术性和复杂度就在于如何分析,并发现系统中的变化点和稳定点,并使用特定的设计方法来应对这种变化。 Visual FoxPro中项目向导建立的项目会使用一个AppHook类实现监视项目成员变化,调整系统结构的工作。 Visual FoxPro中项目向导建立的项目会使用一个AppHook类实现监视项目成员变化,调整系统结构的工作。 * * * * 观察者模式 意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 该模式的关键对象是subject和observer,一个subject可以有任意数目的依赖它的observer,一旦subject的状态发生改变,所有的observer都得到通知。每个observer都将查询subject以同步。(MVC体系结构) 观察者模式提供了一种对象设计,让主题和观察者之间松耦合。 观察者模式 结构 设计模式-行为型模式 * 观察者模式 角色 Subject:提供注册和删除观察者对象的接口 Observer:为在Subject发生改变时需获得通知的对象定义一个更新接口。 ConcreteSubject:将有关状态存入各ConcreteObserver对象,当状态发生改变时,向它的各个观察者发出通知。 ConcreteObserver:维护一个指向ConcreteSubject对象的引用,存储有关状态,这些状态应与Subject的状态保持一致,实现Observer的更新接口以使自身状态与目标的状态保持一致 设计模式-行为型模式 * 观察者模式 模式分析 典型的抽象目标类代码如下所示: import java.util.*; public abstract class Subject { protected ArrayList observers = new ArrayList(); public abstract void attach(Observer observer); public abstract void detach(Observer observer); public abstract void notify(); } 设计模式-行为型模式 * 观察者模式 模式分析 典型的具体目标类代码如下所示: public class ConcreteSubject extends Subject { public void attach(Observer observer) { observers.add(observer); } public void detach(Observer observer) { observers.remove(observer); } public void notify() { for(Object obs:observers) { ((Observer)obs).update(); } } } 设计模式-行为型模式 * 观察者模式 模式分析 典型的抽象观察者代码如下所示: public interface Observer { public void update(); } 设计模式-行为型模式 * 观察者模式 模式分析 典型的具体观察者代码如下所示: public class ConcreteObserver implements Observer { public void update() { //具体更新代码 } } 设计模式-行为型模式 * 观察者模式 模式分析 客户端代码片段如下所示: Subject subject = new ConcreteSubject(); Observer observer = new ConcreteObserver(); subject.attach(observer); subject.notify(); 设计模式-行为型模式 * 观察者模式 模式分析 观察者模式顺序图如下所示: 设计模式-行为型模式 * C#示例与案例 1、C#模板代码 2、股票涨跌 3、猫、狗与老鼠登录控件 4、老板来了 设计模式-行为型模式 * 观察者模式 观察者模式实例与解析 实例一:猫、狗与老鼠

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档