積少成多

          垃圾堆

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            29 Posts :: 1 Stories :: 5 Comments :: 0 Trackbacks
           
          //被觀察者接口,有添加觀察者對象,喚醒所有觀察者等方法申明。
          public
           interface ISubject {
              
          public void setName(String name);
              
          public String getName();
              
          public void addObserver(IObserver o);
              
          public void notifyAllObserver();
          }

          import java.util.*;
          public class Subject implements ISubject{
              
          private String name;
              List
          <IObserver> observers = new ArrayList<IObserver>();
              
          public Subject(){}
              
              
          public Subject(String name){
                  
          this.name=name;
              }
              
          public String getName(){
                  
          return this.name;
              }
              
          public void setName(String name){
                  
          this.name=name;
              }
              
          public void addObserver(IObserver o){
                  observers.add(o);
              }
              
          public void notifyAllObserver(){
                  
          for(int i=0;i<observers.size();i++){
                      observers.get(i).showInfo();
                  }
              }
          }

          //觀察者接口。
          public interface IObserver {
              
          public void showInfo();
          }

          public class Observer implements IObserver{
              
              
          private ISubject sjtref = null;
              
              
          public void setRef(ISubject sjt){
                  
          this.sjtref=sjt;
              }
              
          public Observer(ISubject sjtref){
                  
          super();
                  
          this.sjtref=sjtref;
              }
              
          public void showInfo(){
                  System.out.println(
          "Observering:"+sjtref.getName());
              }
          }

          public class ObserverMain {
              
          public static void main(String args[]){
                  //新建被觀察對象
                  ISubject subject = new Subject("Shen,Ziping");
                  //新建觀察者對象
                  IObserver observer1 = new Observer(subject);
                  //注冊
                  subject.addObserver(observer1);
                  //喚醒觀察者
                  subject.notifyAllObserver();
              }
          }
          posted on 2011-05-30 12:24 思無 閱讀(214) 評論(0)  編輯  收藏 所屬分類: 模式

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 莎车县| 安阳县| 社会| 蓝山县| 沅陵县| 体育| 乐清市| 黎城县| 定襄县| 满洲里市| 卫辉市| 东光县| 石台县| 含山县| 巩义市| 和田县| 全州县| 平江县| 晋江市| 岫岩| 大洼县| 张家川| 安化县| 阿荣旗| 彭山县| 宜都市| 达尔| 民县| 沙河市| 阜南县| 古浪县| 淮滨县| 永登县| 永和县| 淅川县| 青神县| 富平县| 福海县| 米脂县| 毕节市| 武隆县|