`
bjsunrose
  • 浏览: 57262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

23-16,观察者模式

 
阅读更多
1、观察者模式(Observer Pattern)也叫发布订阅模式(Publish/subscribe),它是一个在项目中经常用到的模式。其定义如下:Define a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically(定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会通知并会自动更新)

2、观察者模式的角色:
  一、Subject-被观察者
  定义被观察者必须实现的职责,他必须能够动态的增加、取消观察者。它一般是抽象类或者实现类,仅仅完成作为被观察者必须实现的职责,管理观察者并通知观察者。
  二、Observer-观察者
  观察者接收到消息后,即进行update(更新方法)操作,对接收到的信息进行处理。
  三、ConcreteSubject-具体的被观察者
  定义被观察者自己的业务逻辑,同时定义对那些事件进行通知。
  四、ConcreteObserver-具体的 观察者
  每个观察在即受到信息后的厨师反应是不同的,各个观察者有自己的处理逻辑

3、观察者模式的缺点
  观察者模式需要考虑开发效率和运行效率的问题,一个被观察者,多个观察者,开发和调试就会比较复杂,而起在java中消息的同时默认是顺序执行,一个观察者卡壳,会影响整体的执行效率,在这种情况下,一般考虑采用异步的方式。
  多级触发时的效率更是让人担忧,大家设计时注意考虑。

4、观察者模式的优点
  一、观察者和被观察者之间是抽象耦合
  二、建立一套触发机制。



分享到:
评论

相关推荐

    23-1观察者模式.py

    23-1观察者模式.py

    设计模式--观察者模式java例子

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...

    Android设计模式--观察者模式DEMO

    Android设计模式--观察者模式DEMO 观察者模式是一个使用频率非常高的模式,他最常用的地方是GUI系统和订阅-发布系统。 该模式的最重要的作用就是解耦,使观察者和被观察者之间依赖尽可能小,甚至好无依赖。

    设计模式系列博客--观察者模式

    观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式常用于实现事件驱动的系统或者...

    C++设计模式--观察者模式 demo

    在"C++设计模式--观察者模式 demo"中,我们可能看到如下关键部分: - **定义观察者接口**:通常会有一个名为`Observer`的抽象类,包含`update`方法。 ```cpp class Observer { public: virtual void update() = 0;...

    HeadFirst 设计模式学习笔记2--观察者模式 demo

    观察者模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在构建可扩展和可维护的系统时。HeadFirst的设计模式系列书籍以其直观易懂的方式深受程序员喜爱,本笔记将深入探讨观察者模式的概念...

    设计模式---观察者模式

    观察者模式是一种行为设计模式,它允许你定义一个订阅机制,可以及时地在对象之间传播状态变化。在Java中,观察者模式常用于构建事件驱动系统,使得多个对象能够监听并响应某个对象的状态改变。 首先,我们要理解...

    设计模式-观察者模式.ppt

    观察者模式是一种行为设计模式,它允许你定义一个订阅机制,可以在对象事件发生时通知多个“观察”该对象的其他对象。这个模式的核心在于建立一种一对多的关系,当一个对象的状态改变时,所有依赖于它的对象都会得到...

    设计模式之观察者模式Java实现

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...

    c#代码介绍23种设计模式-17观察者模式(附代码)

    在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用 1. 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端,如果订阅号有...

    设计模式-观察者模式-作业-observer.zip

    观察者模式(Observer Pattern)是软件设计模式中的行为模式之一,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或发布-...

    设计模式-观察者模式(讲解及其实现代码)

    观察者模式,也被称为发布-订阅模式,是软件设计中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在分布式系统、事件驱动...

    android学习日记-6 观察者模式与订阅者模式

    在Android开发中,观察者模式(Observer Pattern)和订阅者模式(Subscriber Pattern)是两种重要的设计模式,它们在实现事件驱动编程中起着关键作用。本文将深入探讨这两种模式的概念、工作原理以及在Android开发中...

    设计模式-观察者

    7. **其他变体**:除了基本的观察者模式,还有复合观察者模式,允许一个观察者对象包含多个观察者,以及异步观察者模式,通知过程在不同的线程中执行,以避免阻塞主线程。 在实际开发中,理解并熟练运用观察者模式...

    Cocos2d-x观察者模式其实很简单!!--之游戏开发《赵云要格斗》

    在本项目"赵云要格斗"中,开发者使用了观察者模式来实现游戏中的事件处理和对象间的通信,使得代码结构更加清晰,易于维护。观察者模式是设计模式中的一种,它定义了对象之间的一对多依赖关系,当一个对象的状态发生...

    observer-pattern-demo 观察者模式示例

    观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在Java中,我们可以利用Java的内置接口`java.util.Observer`和`java.util....

    设计模式实现——观察者模式

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现发布-订阅...

    JAVA-设计模式-行为型模式-观察者模式

    JAVA-设计模式-行为型模式-观察者模式

    test2012-seven-2-观察者模式

    观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计模式中的一个经典概念,主要用于在对象之间建立一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新...

    java观察者模式观察者模式

    观察者模式是设计模式中的一种行为模式,它在Java编程中有着广泛的应用。该模式的主要目的是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被...

Global site tag (gtag.js) - Google Analytics