欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java实现观察者模式代码,java实现观察者,参考:设计模式之禅和jd

来源: javaer 分享于  点击 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开始收费!");       }}
相关栏目:

用户点评