观察者模式:
Observer模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
所以需要在被观察者里面保存一个集合,存放所有依赖它的观察者,在java.util.Observable 里面使用的是Vector,具体可以查看java.util.Observable的代码
使用java提供的java.util.Observable和java.util.Observable可以很方便实现观察者模式:
观察者1:
import java.util.Observable; import java.util.Observer; public class UserTom implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("Tom 收到了通知:"+arg); } }
观察者2:
import java.util.Observable; import java.util.Observer; public class UserLiLei implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("LiLei 收到了通知:"+arg); } }
被观察者:
import java.util.Observable; public class Book extends Observable { public Book(){ System.out.println("创建了一个被观察者对象"); } public void changePrice(){ this.setChanged(); this.notifyObservers("降价通知");//发送一个降价通知 } }
测试类:
public class Test { public static void main(String[] args) { Book book = new Book(); UserTom tom = new UserTom(); UserLiLei lilei = new UserLiLei(); book.addObserver(tom);//将观察者添加到被观察者的集合中 book.addObserver(lilei);//将观察者添加到被观察者的集合中 book.changePrice(); } }
相关推荐
java观察者模式观察者模式java观察者模式观察者模式java观察者模式观察者模式
Java 观察者模式的浅析 简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者...
一个很简单但是明了的java观察者模式的demo。备注几乎每行都加了。
设计模式----观察者模式demo,使用java自带的工具类,实现,后面会上传一个完全自己代码实现的demo
这是以生活中网购为例,详细讲述了Java观察者模式,详情见http://blog.csdn.net/u012810020/article/details/50526586
开发中常用 设计模式 开发者模式,欢迎大家学习。 博客:http://blog.csdn.net/q610098308/article/details/76143959
java观察者模式的实例代码。从最简单的实例开始,到观察者模式。有什么问题可以加扣扣共同探讨
观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化,这个例子是java内置观察者模式
观察者模式实例,用到java的继承,多态,加深概念理解.
利用气象站监测的例子详细介绍观察者模式的使用方法,具体介绍观察者模式的所适应的场景情况
设计模式的分类,Java代码中使用观察者模式的案例以及文档
在设计一组依赖的对象与它们所依赖的对象之间一致(同步)的交流模型时,观察者模式(Observer Pattern)很有用。它可以使依赖对象的状态与它们所依赖的对象的状态保持同步。这组依赖的对象指的是观察者(Observer)...
用java实现的观察者模式,共需要的人学习,如果有不对的地方也请指出
Java设计模式的观察者模式讲解,可以由浅入深了解观察者模式的应用。
一个以报社、读者为例子的经典观察者模式demo。
Java线程池及观察者模式解决多线程意外死亡重启问题,附件含两个要运行代码!
观察者设计模式,java语言实现,完全自己代码实现,未使用observable和observer
java-观察者模式(Observe)