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
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
Android设计模式--观察者模式DEMO 观察者模式是一个使用频率非常高的模式,他最常用的地方是GUI系统和订阅-发布系统。 该模式的最重要的作用就是解耦,使观察者和被观察者之间依赖尽可能小,甚至好无依赖。
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式常用于实现事件驱动的系统或者...
在"C++设计模式--观察者模式 demo"中,我们可能看到如下关键部分: - **定义观察者接口**:通常会有一个名为`Observer`的抽象类,包含`update`方法。 ```cpp class Observer { public: virtual void update() = 0;...
观察者模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在构建可扩展和可维护的系统时。HeadFirst的设计模式系列书籍以其直观易懂的方式深受程序员喜爱,本笔记将深入探讨观察者模式的概念...
观察者模式是一种行为设计模式,它允许你定义一个订阅机制,可以及时地在对象之间传播状态变化。在Java中,观察者模式常用于构建事件驱动系统,使得多个对象能够监听并响应某个对象的状态改变。 首先,我们要理解...
观察者模式是一种行为设计模式,它允许你定义一个订阅机制,可以在对象事件发生时通知多个“观察”该对象的其他对象。这个模式的核心在于建立一种一对多的关系,当一个对象的状态改变时,所有依赖于它的对象都会得到...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用 1. 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端,如果订阅号有...
观察者模式(Observer Pattern)是软件设计模式中的行为模式之一,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或发布-...
观察者模式,也被称为发布-订阅模式,是软件设计中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在分布式系统、事件驱动...
在Android开发中,观察者模式(Observer Pattern)和订阅者模式(Subscriber Pattern)是两种重要的设计模式,它们在实现事件驱动编程中起着关键作用。本文将深入探讨这两种模式的概念、工作原理以及在Android开发中...
7. **其他变体**:除了基本的观察者模式,还有复合观察者模式,允许一个观察者对象包含多个观察者,以及异步观察者模式,通知过程在不同的线程中执行,以避免阻塞主线程。 在实际开发中,理解并熟练运用观察者模式...
在本项目"赵云要格斗"中,开发者使用了观察者模式来实现游戏中的事件处理和对象间的通信,使得代码结构更加清晰,易于维护。观察者模式是设计模式中的一种,它定义了对象之间的一对多依赖关系,当一个对象的状态发生...
观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在Java中,我们可以利用Java的内置接口`java.util.Observer`和`java.util....
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现发布-订阅...
JAVA-设计模式-行为型模式-观察者模式
观察者模式,也被称为发布-订阅(Publish-Subscribe)模式,是软件设计模式中的一个经典概念,主要用于在对象之间建立一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新...
观察者模式是设计模式中的一种行为模式,它在Java编程中有着广泛的应用。该模式的主要目的是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被...