观察者模式:
特点:观察者模式的适用范围是适合一对多情况,有一个主题,n个观察者。当主题发生变化时
相对应的观察者都会收到更新通知,从而更新自己的一些数据或触发一些行为
比如支付宝中当你消费一些钱后,很多个和支付宝余额相关的界面都会得到更新!
观察者模式的思想核心,我觉得用一个词来总结的话,就是群发
现实中的例子: 推送服务.EventBus和Axjava等都是观察者模式,或者70-
80年代农村中搞广播,
1.被观察者:
Observable 一对多中的一
2.观察者: Observer: 一对多中的多
实现步骤:
被观察者: _观察者模式_被观察者
1.新建一个被观察者类extends Observable
2.创建一个成员变量, 如:
int mData =
0;
3.创建一个setData(
int data)的方法 ,让mData=
data
4.setChanged();
//标记此 Observable对象为已改变的对象
6. notifyObservers();
//通知所有观察者
观察者: _观察者模式_观察者
1.新建一个观察者类
implements Observer 系统util包下
2.重写upDate(
Observable observable, Object o)方法
3. 获取被观察者对象: MyObservable
myObservable= (MyObservable) observable;
4. 处理之前被观察者中,保存的成员变量 myObservable.
data,如打印出来
测试类: _观察者模式 测试
新建一个测试类
并设置一个方法,在方法内做一下操作
1.// 第一步:创建被观察者对象 MyObservable myObservable= new MyObservable();
2. //第二步:给被观察者添加观察者,当然可以添加多个观察者(一对多中多)
myObservable.addObserver(
new MyObserve());
3.//第三步:改变被观察者中的数据 myObservable.setData(1);
4.//第四步: 看观察者中的重写的更新方法的输出.
转载请注明原文地址: https://ju.6miu.com/read-33816.html