Oberserverモード

1962 ワード

最初のオブザーバー:
package observer;
import  java.util.Observer;
public class JMSObserver implements Observer {


	@Override
	public void update(java.util.Observable o, Object arg) {
		// TODO Auto-generated method stub
		 System.out.println("JMS   "+arg);  
	}

}

 2番目の観察者:
package observer;
import java.util.*;
public class MailObserver implements Observer {

	@Override
	public void update(Observable o, Object arg) {
		// TODO Auto-generated method stub
		 System.out.println("Mail   "+arg);  
	}

}

 対象者:
package observer;
import  java.util.Observable;
import  java.util.Observer;
public class Subject extends Observable { //bei  guan  cha 
	 /** 
	      *     ,        ,       ()
	      */  
	     public void doBusiness(String  str){         
      super.setChanged();  
	           notifyObservers(str);  
//     str         !	     }  
	   
	       
	   
}

  被観察者が自発的に観察者に通知する
テストクラス:
 
 
TEST;
 
     public static void main(String [] args) {  
	         //          (              add  )
	         Subject subject = new Subject();  
	           
	         //         
	         Observer mailObserver = new MailObserver();  
	         Observer jmsObserver = new JMSObserver();  
	           
	         //                 
	         subject.addObserver(mailObserver);  
	         subject.addObserver(jmsObserver);  
	           
	         //        
	          subject.doBusiness("       ");  	     }