android开发之观察者模式的使用

观察者模式是安卓开发中比较常用的一种设计模式,尤其是在某些特定项目中应用特别广泛,平时在网上收到的详解也只是一些举例说明和简单举例,离实际应用还是有着较大差距,本人最近做的一个项目中就大量运用了该模式,于是就想着记录一下自己的所学,同时分享一下自己的心得,如有不足之处,还请各位大神指点迷津。。。

被观察者类的创建

被观察者类主要是要继承java中的Observable类,这也是java中自带的被观察者类,当被观察者状态改变并需要传达给观察者的时候,在此类中需要写上下面两行代码:

//在通知 所有观察者之前 一定要调用 setChanged()方法来设置被观察者的状态已经被改变
this.setChanged();
//通知所有观察者自己的状态以改变
//notifyObservers 方法在通知完所有观察者 后, 会自动调用 clearChanged 方法来清除被观察者 的状态改变。
this.notifyObservers(Object object); //参数是需要传递给观察者的数据

这样,所有的观察者就都可以接收到状态改变的通知

观察者类的创建

观察者类主要是要实现java中的Observer类,这个类也是java中自带的,直接implements就好,实现后会有一个update(Observable observable, Object data)方法,其中第二个参数就是从被观察者类中传过来的数据,但这时观察者时接收不到被观察者状态改变的通知的,还需要添加几句代码:
具体是初始化被观察者类,然后用被观察者类调用addObserver()方法,即添加为观察者的意思
被观察者类.addObserver(this);
同样,如果观察者类不想再接收被观察者的状态改变通知,调用下面代码即可:
被观察者类.deleteObserver(this);

当上面操作都完成后,用户就可以在update()方法里监听到被观察者的状态改变并得到传递过来的数据,从而进行自己想要的操作。一般来说观察者模式最多的还是配合socket一起使用,已达到数据实时更新的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值