java觀察者模式 – JAVA編程語言程序開發技術文章

觀察者模式:
就如其名, 觀察者。 有觀察者(observer), 肯定需要一個被觀察的對象(topic)。 自然世界裡, obeserver應該能夠時刻觀察topic的變化, 並作出相應的action。

在這個模式裡,特別需要針對接口編程。 so…
[java]
//定義觀察者接口, 當觀察者發現topic的某個狀態發生變化的時候, 會作出相應的action 
public interface observer{ 
      void action(); 

[java]
public class A implements Observer{ 
       public void action(){ 
             System.out.println("Observer A do action!"); 
       } 

public class B implements Observer{ 
       public void action(){ 
             System.out.println("Observer B do action!")' 
       } 

public class C implements Observer{ 
       public void action(){ 
              System.out.println("Observer C do action!"); 
       } 

[java]
//定義一個topic接口, 一個topic的某個屬性將發生改變, 而observer就是觀察這個屬性的改變。 
public interface Topic{ 
      void statusChanged(); 

[java]
public class OneTopic{ 
         private List<Observer> obs = new ArrayList<Observer>(); 
         //setter、getter方法省略 
         public void statusChanged(){ 
               for(Observer o : obs){ 
                   o.action(); 
               } 
         } 

[java]
public class Test{ 
       public static void main(String[] args){ 
             Observer oa =  new A(); 
             Observer ob =  new B(); 
             Observer oc =  new C(); 
             Topic topic = new OneTopic(); 
             topic.getObs().add(oa); 
             topic.getObs().add(ob); 
             topic.getObs().add(oc); 
             topic.statusChanged(); 
  
       } 

摘自 從此愛上蒲肉格蕾銘.-^

發佈留言