首页 > 代码库 > Android 中的观察者模式Observer
Android 中的观察者模式Observer
转载请注明出处:http://blog.csdn.net/feiduclear_up/article/details/42167487
观察者模式“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都将得到通知,并自动更新”,可以理解成多个观察者向一个被观察者订阅消息,当被观察者发生改变时通知相应的观察者去作自己的事情。Android 中的观察者 实现Observer接口,被观察者继承Observable类。使用步骤如下:
1.观察者DataWatcher 实现Observer 接口。
2.被观察者DataChange继承Observable 类。
3.观察者DataWatcher 向被观察者 DataChange 订阅事件(将观察者DataWatcher添加到被观察者DataChange里面去)。
4.被观察者DataChange数据有改变,通知观察者DataWathcer相应的数据有改变,请作出相应的操作。
5.观察者DataWather 向被观察者 DataChange取消订阅事件(将观察者DataWatcher从被观察者DataChange中移除)。
代码实现如下:
1.观察者类
package com.example.observer; import java.util.Observable; import java.util.Observer; /** * TODO<请描述这个类是干什么的> * * @author xjp * @data: 2014年12月26日 上午9:29:56 * @version: V1.0 */ public abstract class DataWatcher implements Observer { @Override public void update(Observable observable, Object data) { } }
2.被观察者类
package com.example.observer; import java.util.Observable; /** * TODO<请描述这个类是干什么的> * * @author xjp * @data: 2014年12月26日 上午9:30:21 * @version: V1.0 */ public class DataChange extends Observable { private static DataChange instance = null; public static DataChange getInstance() { if (null == instance) { instance = new DataChange(); } return instance; } public void notifyDataChange(Data data) { //被观察者怎么通知观察者数据有改变了呢??这里的两个方法是关键。 setChanged(); notifyObservers(data); } }
3.操作类
package com.example.observer; import java.util.Observable; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { private DataWatcher watcher = new DataWatcher() { @Override public void update(Observable observable, Object data) { super.update(observable, data); //观察者接受到被观察者的通知,来更新自己的数据操作。 Data mData = http://www.mamicode.com/(Data)data;>
4.数据类:package com.example.observer; /** * TODO<请描述这个类是干什么的> * * @author xjp * @data: 2014年12月26日 上午9:33:33 * @version: V1.0 */ public class Data { private int dataChange; public Data() { } public int getDataChange() { return dataChange; } public void setDataChange(int dataChange) { this.dataChange = dataChange; } }
注意:我主要是实现android 中观察者模式代码的一个框架,具体怎么写代码还得看实际的业务。其实编程最主要的思想就是框架的实现了。
Android 中的观察者模式Observer
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。