public interface Observe{
//更新的接口 subject:传入目标对象,方便获取相应的目标对象和状态
public void update(Subject Subject);
}
public class ConcreteObserver implements Observe{
private String ObserveState; //观察者的状态
@Override
public void update(Subject Subject){
ObserveState = ((ConcreteSubject)subject).getSubjectState();
}
}
public class ConcreteSubject extends Subject{
//目标对象的状态
private String subjectState;
public String getSubjectState(){
return subjectState;
}
}
public void setSubjectState(String subjectState){
this.subjectState = subjectState;
this.notifyObserves();
}
public class Subject{
//用来保存注册的观察者对象
private List<Observe> observes = new ArrayList();
public void attach(Observe observes){
observes.add(observe);
}
//删除集合中指定的观察者
public void detach(Observe observe){
observes.remove(observe);
}
//通知所有注册的观察者
protected void notifyObserves(){
for(Observe observe: observes){
observe.update(this);
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-33221.html