积少成多

垃圾堆

  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 思无 阅读(202) 评论(0)  编辑  收藏 所属分类: 模式

只有注册用户登录后才能发表评论。


网站导航: