java实现观察者模式代码,java实现观察者,参考:设计模式之禅和jd
分享于 点击 36755 次 点评:39
java实现观察者模式代码,java实现观察者,参考:设计模式之禅和jd
参考:设计模式之禅和jdon部分代码。
NewsDispatcher.java
package com.hegd.pattern.observer.news;import java.util.Observable;public class NewsDispatcher extends Observable { /** * 添加新闻的时候,把新闻内容发给所有的定义者 * @param news */ public void addNews(String news) { this.setChanged(); this.notifyObservers(news); } }
Reader.java
package com.hegd.pattern.observer.news;import java.util.Observable;import java.util.Observer;public class Reader implements Observer { private String name; public Reader(String name) { this.name = name; } @Override public void update(Observable o, Object arg) { String news = (String)arg; System.out.println(name + " : " + news); }}
Test.java
package com.hegd.pattern.observer.news;public class Test { public Test() {} public static void main(String[] args) { // TODO Auto-generated method stub //体育新闻派发器 NewsDispatcher sportNewsDispatcher = new NewsDispatcher(); //it新闻派发器 NewsDispatcher itNewsDispatcher = new NewsDispatcher(); //观察者r1,r2,r3 Reader r1 = new Reader("r1"); Reader r2 = new Reader("r2"); Reader r3 = new Reader("r3"); //添加观察者 sportNewsDispatcher.addObserver(r1); sportNewsDispatcher.addObserver(r2); itNewsDispatcher.addObserver(r3); //当有新的新闻的时候,通知观察者 sportNewsDispatcher.addNews("中国队突破了历史获得了世界杯冠军!"); System.out.println("辅导书"); itNewsDispatcher.addNews("ibm 收购 sun公司,java开始收费!"); }}
用户点评