设计模式观察者模式.pptx

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

设计模式观察者模式汇报人:XXX2024-01-22

目录观察者模式概述观察者模式实现方式观察者模式优缺点观察者模式应用案例观察者模式与其他模式的比较观察者模式的设计原则与注意事项

01观察者模式概述

动态绑定观察者和被观察者之间的绑定关系可以在运行时动态建立或解除。定义观察者模式是一种行为设计模式,它定义了对象之间的依赖关系,使得当一个对象改变状态时,其相关依赖对象都会收到通知并自动更新。解耦观察者和被观察者之间通过抽象接口进行交互,减少两者之间的耦合度。广播通知当被观察者的状态发生变化时,所有注册的观察者都会收到通知。定义与特点

当需要根据数据的变化动态更新界面或执行相关操作时。数据驱动的应用事件驱动的系统跨平台的通知机制在事件发生时需要通知多个相关组件或服务。需要提供一个统一的接口来发布和订阅事件,而不需要关心底层实现细节。030201适用场景

参与者与职责被观察者(Observable)维护一个观察者列表,当其状态发生变化时,通知所有注册的观察者。观察者(Observer)定义了一个更新方法,当被观察者的状态发生变化时,该方法将被调用。具体被观察者(ConcreteObser…实现了被观察者的抽象方法,并维护了与具体观察者之间的关联。具体观察者(ConcreteObserv…实现了观察者的抽象方法,并存储了与被观察者的关联信息。

02观察者模式实现方式

首先,需要定义一个观察者接口,该接口声明了观察者需要实现的方法。这些方法通常包括更新方法,用于接收主题发出的通知。观察者类需要实现观察者接口,并实现其中的方法。每个观察者类可以专注于处理特定的主题数据,以完成相应的业务逻辑。观察者接口定义实现观察者接口定义观察者接口

建立主题与观察者之间的关联在主题类中,需要维护一个观察者对象的列表,以便在有状态变化时通知所有相关联的观察者。注册/注销观察者提供注册和注销观察者的方法,允许观察者动态地加入或退出主题的观察列表。主题与观察者关系建立

主题通知观察者更新主题发出通知当主题对象的状态发生变化时,它需要通知所有已注册的观察者。这通常通过调用每个观察者的更新方法实现。观察者响应更新观察者在收到主题发出的通知后,会调用其更新方法,以处理新的数据或执行相应的业务逻辑。

03观察者模式优缺点

灵活观察者模式支持一对多的关系,一个观察者可以同时响应多个主题对象的事件,提高了系统的灵活性。支持动态添加/删除观察者观察者模式允许在运行时动态添加或删除观察者,使得系统更加灵活和易于扩展。高效观察者模式允许在广播通知时只通知感兴趣的观察者,而不是所有观察者,提高了系统的效率。解耦观察者模式允许将事件的发布者和订阅者解耦,使得两者可以独立变化,降低系统间的耦合度。优点

通知可能过于频繁如果一个主题对象频繁地触发事件,那么所有订阅了该事件的观察者都会收到通知,这可能导致性能问题。如果多个观察者对同一个事件做出相同的处理,那么每次事件触发时都会重复执行相同的计算,造成资源浪费。在多线程环境下,如果多个线程同时修改观察者和主题对象,可能会导致数据不一致的问题。因此,需要采取适当的同步措施来保证线程安全。在某些情况下,管理观察者和主题对象的订阅关系可能变得复杂,特别是当观察者需要取消订阅或者添加新的订阅时。可能产生冗余计算需要谨慎处理线程安全问题难以管理订阅关系缺点

04观察者模式应用案例

应用场景天气预报应用需要实时更新天气数据,并通知用户。当天气发生变化时,应用需要自动通知用户,以便他们能够做出相应的安排。观察者模式的使用在天气预报应用中,天气数据是主题(Subject),用户是观察者(Observer)。当天气发生变化时,主题会通知所有订阅了该主题的观察者,观察者收到通知后更新界面显示。优点通过观察者模式,天气预报应用能够实时更新用户界面,提供最新天气信息,提高用户体验。天气预报应用

应用场景股票交易应用需要实时获取股票数据,并在价格波动时通知用户。用户需要能够快速做出反应,抓住交易机会。观察者模式的使用在股票交易应用中,股票数据是主题,用户是观察者。当股票价格发生变化时,主题会通知所有订阅了该主题的观察者,观察者收到通知后更新界面显示或执行相应的交易操作。优点通过观察者模式,股票交易应用能够实时更新用户界面并提供实时数据,使用户能够快速做出交易决策。股票交易应用

新闻推送应用通过观察者模式,新闻推送应用能够实时更新用户界面并提供最新新闻动态,使用户能够及时了解新闻事件。优点新闻推送应用需要实时获取新闻数据,并在有新消息时通知用户。用户需要能够及时了解最新的新闻动态。应用场景在新闻推送应用中,新闻数据是主题,用户是观察者。当有新消息发布时,主题会通知所有订阅了该主题的观察者,观察者收到通知后更新界面显示或接收推送消息。观察者模式的使用

05观察者模式

文档评论(0)

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

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

1亿VIP精品文档

相关文档