首先你得有一个主题接口
interface Subject{
void attach(Observer item);//新增观察者
void detach(Observer item);//删除观察者
void notify();//发布通知
}
接着你需要一个观察者接口
interface Observer{
void update(String state);
}
然后我们新建主题类
public class Subject1 implements Subject{
List<Observer> observers=new LinkedList<Observer>();
private String state;
public String getState(){
return this.state;
}
public void setState(String state){
this.state=state;
}
public void attach(Observer item){
this.observers.add(item);
}
public void detach(Observer item){
this.observers.remove(item);
}
public void notify(){
for(Observer item:observers){
item.update(state);
}
}
}
然后新建观察类
public class Observer1 implements Observer{
public void update(String state){
System.out.println(this+"收到通知:"+state+"做Observer1自己的处理");
}
}
public class Observer2 implements Observer{
public void update(String state){
System.out.println(this+"收到通知:"+state+"做Observer2自己的处理");
}
}
最后调用创建主题类实例,为主题实例新增两个观察者类对应的实例。调用一下主题实例的notify方法就可以通知调用到所有的观察者实例的update方法了.
上一下官方图