java设计模式之观察者模式(1)和 java设计模式之观察者模式(2)
都简单的介绍了观察者模式。
但是有局限,观察者是固定的,观者的行为也是固定的,而且代码耦合程度特别高,首先我没有使用接口,我前两篇只是讲一下观察者的概念大概是什么情况,解决观察者固定这个问题我们可以用容器,解决固定行为的问题,我们可以用aop解决,这里不多说了
现在讲下java 种已经提供了java.util.Observable类(被观察者)和java.util.Observer接口(观察者)。
比如三国时期,刘备和孙权联合抗击曹操。
假设曹操带领大军来攻击孙权,
孙权和刘备都要观察曹操的动静,因为他们是盟军嘛。
曹操:
package spring3.event; import java.util.Observable; public class CaoCao extends Observable { public void attact() { System.out.println("曹操:开始进攻!!!"); super.setChanged(); super.notifyObservers(); } }
刘备:
package spring3.event; import java.util.Observable; import java.util.Observer; public class LiuBei implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("刘备:监视到了曹操开始进攻."); System.out.println("刘备:我们两翼包抄."); } }
孙权:
package spring3.event; import java.util.Observable; import java.util.Observer; public class SunQuan implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("孙权:监视到了曹操开始进攻."); System.out.println("孙权:我们正面迎敌."); } }
测试
package spring3.event; public class Test { public static void main(String[] args) { LiuBei liu = new LiuBei(); SunQuan sun = new SunQuan(); CaoCao cao = new CaoCao(); // 当然这是秘密安插间谍,谁也不能白痴到自己招间谍 cao.addObserver(liu); cao.addObserver(sun); cao.attact(); } }
测试结果:
曹操:开始进攻!!! 孙权:监视到了曹操开始进攻. 孙权:我们正面迎敌. 刘备:监视到了曹操开始进攻. 刘备:我们两翼包抄.
这个代码都很简单,我就不说什么了,可以自己意会。
相关推荐
Java设计模式是软件开发中的重要概念,它们是解决常见编程问题的经验总结,使得代码更加可复用、可扩展和易于维护。观察者模式(Observer Pattern)是这些模式中的一种,它在多对一的关系中使用,当一个对象的状态...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
**观察者模式(Observer Pattern)**是软件设计模式中的一种行为模式,它在Java中有着广泛的应用。这个模式的核心思想是“一对多”的依赖关系,即一个主题对象(Subject)可以被多个观察者(Observer)关注,当主题...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动或者发布...
结合微信公众号讲解观察者模式,生动形象,关键是上手快啊
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
观察者模式是设计模式中的一种行为模式,它在Java编程中有着广泛的应用。该模式的主要目的是定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被...
首先,我们来看"Java设计模式——观察者模式的两种情况": 1. **主动通知**: 在这种情况下,被观察者对象在自身状态发生变化时,会主动调用`Observable`接口提供的`notifyObservers()`方法,将变化通知给所有注册的...
在Java编程领域,设计模式是一种被广泛采用的最佳实践,它为解决常见的软件设计问题提供...在Java中,`java.util.Observable`和`java.util.Observer`是内置的观察者模式实现,可以方便地用于快速构建观察者模式的系统。
在Java中,`java.util.Observable`和`java.util.Observer`接口提供了观察者模式的实现。例如,当我们有一个`WeatherStation`类(被观察者)和多个`WeatherDisplay`类(观察者)时,`WeatherStation`的气象数据变化会...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在软件开发中广泛应用于事件驱动...
Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,我们可以利用Java提供的...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它允许一个对象,当其状态发生改变时,能够自动通知所有依赖它的其他对象。在Java中,这种模式已经被内置到语言核心,使得开发者可以轻松地实现事件驱动...
- 观察者模式:定义对象之间的一对多依赖关系,当一个对象的状态改变时,所有依赖于它的对象都会得到通知并自动更新。 - 状态模式:允许对象在其内部状态改变时改变其行为,看起来像改变了它的类。 - 策略模式:...
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...