观察者模式(行为型)
来源:互联网 发布:搜索电影免费网络观看 编辑:程序博客网 时间:2024/06/01 03:58
观察者模式
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
适用性
1.当一个抽象模型有两个方面,其中一个方面依赖于另一方面。
将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
2.当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变。
3.当一个对象必须通知其它对象,而它又不能假定其它对象是谁。
结构类图
headfirst实例类图:
系统结构
主题类:
public class WeatherData extends Observable{private float humidity;private float pressure;private float temperature;public WeatherData(){} /** * 定义三个get方法,方便观察这抓取信息 * @return */public float getHumidity() {return humidity;}public float getPressure() {return pressure;}public float getTemperature() {return temperature;}private void measurementsChanged() {// TODO Auto-generated method stubsetChanged();notifyObservers();} public void serMessured(float tem,float humid,float pres){this.humidity=humid;this.temperature=tem;this.pressure=pres;measurementsChanged();}public void setPressure(float pressure) {this.pressure = pressure;}}
具体观察者:
public class ConcreteObserve implements Observer {private Observable observable = null;private float temperature;private float humit;public ConcreteObserve(Observable o) {this.observable = o;this.observable.addObserver(this);}public void update(Observable o, Object arg) {if(o instanceof WeatherData){WeatherData weatherData =(WeatherData) o;this.temperature=weatherData.getTemperature();this.humit=weatherData.getHumidity();show();}}public void show(){System.out.println("我具体观察到被观察者的变化"+"temp="+this.temperature+"humi="+this.humit);}}
测试类:
public class testC {/** * @param args */public static void main(String[] args) {//定义一个主题WeatherData weatherdate =new WeatherData();//创建一个观察者ConcreteObserve concreteObserve=new ConcreteObserve(weatherdate);//第一次主题改变weatherdate.serMessured(1.0f, 1.0f, 1.0f);//第二题改变weatherdate.serMessured(2.0f, 2.0f, 2.0f);}}
测试结果:
我具体观察到被观察者的变化temp=1.0humi=1.0我具体观察到被观察者的变化temp=2.0humi=2.0
0 0
- 行为型-观察者模式
- 行为型模式-观察者
- 行为型--观察者模式
- 观察者模式(行为型)
- 观察者模式(行为型)
- 观察者模式(行为型)
- 行为型模式-观察者模式
- 行为型之观察者模式
- 行为型模式-观察者observer
- 观察者模式(行为型)
- 12-行为型-观察者模式
- 行为型之观察者模式
- 设计模式 - 行为型模式 - 观察者模式
- 设计模式->行为型模式->观察者模式
- 行为型模式-观察者模式(Observer)
- 设计模式--行为型--观察者模式
- 观察者模式--行为型模式之三
- 设计模式15:观察者模式【行为型】
- PHP网页的工作原理
- 程序流程控制
- 260. Single Number III
- iPhone OS主要提供以下几种播放音频的方法
- 链式前向星
- 观察者模式(行为型)
- android:属性
- Android学习笔记(七*侧滑切换图片)
- Android JNI(实现自己的JNI_OnLoad函数)
- HDU 5531 Rebuild(三分)
- Android 四大组件和五大布局
- 转载-TCP协议实现原理
- 关于OkHttp框架的使用方法
- 单片机==lcd_电池充电(20)