積少成多

          垃圾堆

            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)  編輯  收藏 所屬分類: 模式

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


          網站導航:
           
          主站蜘蛛池模板: 隆德县| 侯马市| 彝良县| 万安县| 潍坊市| 长顺县| 麦盖提县| 潼南县| 云南省| 襄汾县| 澄江县| 进贤县| 永平县| 绍兴县| 揭东县| 泸溪县| 信丰县| 平南县| 昌黎县| 平和县| 抚远县| 鱼台县| 太白县| 台中县| 于田县| 静宁县| 仪陇县| 清远市| 嵊泗县| 高平市| 介休市| 基隆市| 聂拉木县| 遵义县| 宁化县| 赣州市| 吴忠市| 乌兰察布市| 吉安市| 小金县| 板桥市|