观察者模式:定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态时,它依赖着都会收到通知并更新。
设计原则:为了交互对象之间松耦合设计而努力。
想到了C#里边的委托好像挺像的
例子:实现一个气象站
代码:
Observer.java
package proj.wxh.observer; /** * 观察者模式-->观察者 */ public interface Observer { /** * 数据更新通知 */ public void update(float temp,float humi, float pressure); }
|
Subject.java
package proj.wxh.subject;
import proj.wxh.observer.Observer;
/** * 观察者模式-->主题 */ public interface Subject { /** * 注册观察者 */ public void registerObserver(Observer o); /** * 移除观察者 */ public void removeObserver(Observer o); /** * 通知信息给观察者 */ public void notifyObservers(); }
|
WeatherData.java
package proj.wxh.subject;
import java.util.ArrayList;
import proj.wxh.observer.Observer; /** * 继承自观察者接口,多用接口少用继承 */ public class Wea |