软件工程施工(完整版).ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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 设计模式选择及使用 软件工程 考虑设计模式是怎样解决设计问题的 对设计模式的讨论,能帮助找到合适的对象、决定对象的粒度、指定对象接口以及设计模式解决设计问题的几个其他方法。 浏览模式的意图部分 通读每个模式的意图,找出和问题相关的一个或多个模式。可以使用前表所显示的分类方法缩小搜查范围。 选择设计模式的方法: 软件工程 研究模式怎样互相关联 前图以图形方式显示了设计模式间的关系。研究这些关系能获得合适的模式或模式组。 研究目的相似的模式 通过比较和对照,能够洞察具有相似目的的模式之间的共同点和不同点。 软件工程 检查重新设计的原因 找出哪些模式可以帮助你避免这些会导致重新设计的因素。 考虑设计中哪些是可变的 表17-2列出了设计模式允许独立变化的方面,可以改变它们而又不会导致重新设计。 软件工程 1) 大致浏览,特别关注适用性和效果部分,确定是否适合问题。 2) 回头研究结构、参与者和协作部分,关注类和对象以及它们是怎样关联的。 3) 看代码示例部分,看该模式代码形式的具体例子。 使用设计模式的方法 4) 选择参与者的名字,名字通常较抽象而不直接出现在应用中。一般将参与者的名字和应用中出现的名字合并起来。如,在文本组合算法中用了Strategy模式,那么可能有名为SimpleLayoutStrategy或TextLayoutStrategy的类。 5) 定义类声明接口,建立继承关系,定义代表数据和对象引用的实例变量。 软件工程 软件工程 6) 定义操作名称。名称一般依赖于应用。例如,可以使用“Create-”前缀统一标记Factory方法。 7) 实现执行模式中责任和协作的操作。实现部分提供线索指导进行实现。 设计模式不能随意使用。通常通

文档评论(0)

镜花水月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档