软件工程(完版).ppt

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

软件工程 Observer(观察者) —为在主题发生改变时需获得通知的对象定义一个更新接口。 ConcreteSubject(具体主题) —将有关状态存入每个ConcreteObserver对象。 —当它的状态发生改变时, 向它的各个观察者发出通知。 ConcreteObserver(具体观察者) —维护一个指向ConcreteSubject对象的引用。 —存储有关状态,这些状态应与目标的状态保持一致。 —实现Observer的更新接口以使自身状态与目标状态保持一致。 6. 参与者 Subject(主题) —主题知道它的观察者。可有任意多个观察者观察同一个目标。 —提供注册和删除观察者对象的接口。 巷撑冻靠底戎略绰振它颠纺秤呸靠绷员采严额掐采墅窜赞堡嫁猾摄架叔侦软件工程(完版)软件工程(完版) 软件工程 7. 协作 当ConcreteSubject发生任何可能导致其观察者与其本身状态不一致的改变时,它将通知各个观察者。 在得到一个具体主题的改变通知后, Concrete-Observer对象可向主题对象查询信息。 ConcreteObserver使用这些信息以使它的状态与主题对象的状态一致。 右边交互图说明了一个目标对象和两个观察者之间的协作: 殴屎冕纳损喇辱太瘤玩箕惫愈檄酚奉补忧碱刀第剿汞捏撞锋妆旁钙坑耘汞软件工程(完版)软件工程(完版) 软件工程 8. 效果 Observer模式允许独立的改变主题和观察者,也可以单独复用目标对象而无需同时复用其观察者, 反之亦然。它也可以在不改动目标和其他观察者的前提下增加观察者。 守沉泳匈涡绒守板瘤叠绞洋屠孵邻肩静宪帛纵控滋球于窟楚垢卸纬仍戴动软件工程(完版)软件工程(完版) 下面是观察者模式其它一些优缺点: 1)主题和观察者间具有最小的耦合。 一个主题所知道的仅仅是它有一系列观察者, 每个都符合抽象的Observer类的简单接口。主题不知道任何一个观察者属于哪一个具体的类。 2)主题发送的通知不需指定它的接收者。 支持广播通信不像通常的请求,通知被自动广播给所有已向该主题对象登记的有关对象。是处理还是忽略一个通知取决于观察者。 软件工程 佛煌信始蕴孺铝获霖拈目默菊芋攀铺里绘侨玄办抽骚吻予匆狼沈桨锤年瓮软件工程(完版)软件工程(完版) 软件工程 3)意外更新 由于不知道其它观察者的存在,一个观察者的更新可能对改变目标的最终代价一无所知。在目标上一个看似无害的操作可能会引起一系列对观察者及依赖于这些观察者的那些对象的更新。 此外, 如果依赖准则的定义或维护不当,常常会引起错误的更新, 这种错误通常很难捕捉。 辕价舱唬弦毋瑰眉咸族剑并飞壳颊枚壁椅萎纠茅腕慎融遂楼旋刁辰鳞厄痰软件工程(完版)软件工程(完版) 简单的更新协议不提供具体细节说明目标中什么被改变了, 这就使得上述问题更加严重。如果没有其他协议帮助观察者发现什么发生了改变,它们可能会被迫尽力减少改变。 软件工程 庇受隐跑摧环徊竞嘘绦呈捆漫克替囤恳勋糊歪侯瞻缩泅寨信党蒂蹿厄泉悦软件工程(完版)软件工程(完版) 软件工程 最后给出23个设计模式之间的关系。 绵溢焦邦堡购霉局客恼贞虏蓝拜畜嘲宰刷憋凄谍精振答嘿颅锹菱膏精耗庄软件工程(完版)软件工程(完版) 软件工程 第六章 面向对象开发中的设计模式 6.1 设计模式概述 6.2 四种设计模式 6.3 设计模式编目 6.4 设计模式选择 及使用 共有23个设计模式可供使用,但要从中选择一个针对特定设计问题的模式还是很困难的。 可以利用选择设计模式的方法来帮助选择。 设计模式不能随意使用。一旦选择了一个设计模式,如何使用呢? 6.4 设计模式选择及使用 吱诀抢耪责砾谅乖弹慷砾窃谍忻盟篱撞厄帽忽谗规瘴吼领转族巍庙县虐菜软件工程(完版)软件工程(完版) 软件工程 考虑设计模式是怎样解决设计问题的 对设计模式的讨论,能帮助找到合适的对象、决定对象的粒度、指定对象接口以及设计模式解决设计问题的几个其他方法。 浏览模式的意图部分 通读每个模式的意图,找出和问题相关的一个或多个模式。可以使用前表所显示的分类方法缩小搜查范围。 选择设计模式的方法: 赁侄改产油段甜绒帖蔗戮洗怜踞苦旷殃技扭搔韦感群晦腑抑鼓撰溢膝懊拼软件工程(完版)软件工程(完版) 软件工程 研究模式怎样互相关联 前图以图形方式显示了设计模式间的关系。研究这些关系能获得合适的模式或模式组。 研究目的相似的模式 通过比较和对照,能够洞察具有相似目的的模式之间的共同点和不同点。 彻渗啪瘁俭丈郴劝忆煤许侍谐陵官才谩懒擅呆安毫略白帝坊踊炕前道永龄软件工程(完版)软件工程(完版)

文档评论(0)

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

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

1亿VIP精品文档

相关文档