观察者模式

出版者+订阅者=观察者模式

观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并通知更新。

主题和观察者定义了一对多的关系,观察者依赖于此主题,只要主题状态一有变化,观察者就会被通知。

设计原则:为了交互对象之间的松耦合设计而努力。

  • Subject:目标

  • ConcreteSubject:具体目标

  • Object:观察者

  • ConcreteObject:具体观察者


public interface Subject{

//这两个方法都需要一个观察者作为变量,该观察者是用来注册或被删除的

public void registerObserver(Observer o);

public void removeObject(Observer o);

//当主题状态改变时,这个方法会被调用,以通知所有的观察者

public void notifyObject(Observer o);

}

public interface Observer{

public void uddate(float temp,float humidity,float pressure);

}

public interface DiaplayElement{

public void display();

}

//在WeatherData中实现主题接口

public class WeatherData implements Subject{

private ArrayList observers;

private float temperature;

private float humidity;

private float pressure;

public WeatherData(){

observers=new ArrayList();l

}

//当注册观察者时,我们只要把它加到ArrayList的后面即可

public void registerObserver(Observer o){

observers.add(o);

}

public void removeObserver(Observer 0){

int i=observers.indexOf(o);

if(i>=0){

observers.remove(i);

}

}

public void notifyObservers(){

for(int i=0;i
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容