Android观察者模式项目中基本用法

来源:互联网 发布:矩阵论清华大学出版社 编辑:程序博客网 时间:2024/06/01 19:40

观察者模式呢,理论我就不讲,对我来说就是面向接口编程的,讲下在平时开发中来怎么用把。

事例》 当我们在开发中遇到用户修改头像的时候,在用户设置页面修改成功了,

但是其他页面也用到过这头像,我们一般都会怎么做呢?

1 写activity的回调, 这个毕竟基础的办法,但是遇到多个activity叠加或者关联的时候,或者是遇到还有其他回调的时候,那么逻辑就会有一大堆,非常麻烦,也不利于阅读。

2 用广播的方式,其实关于广播各有各的说话,毕竟它的设计模式也是采用的观察者模式,但是有的时候显得并太重,大刀小用的感觉。

3,采用EventBus,说实话,这个我没有用过,就不评论。

下面我就讲讲我开发中对观察者的使用把

用户,我们肯定会有一个对用户管理的Manager。

我定义为UserInfoManager 采用单例。继承被观察者Observable

Android观察者模式项目中基本用法

基类BaseActivity实现观察者Observer,在onCreat去添加注册被观察者中去,在onDestory中删除当前这个观察者。实现update

Android观察者模式项目中基本用法

我写了2个activity 第一个MainActivity

里面一个Button按钮,用于跳转到第二个页面,一个TextView用于显示当userinfo改变的时候显示字

Android观察者模式项目中基本用法

第二个页面 一个TextView 一样用与显示Userinfo被赋值是显示对应的属性值

3个EditText 用于输入用户的一些信息

1个Button 用于初始化UserInfo

Android观察者模式项目中基本用法

这样做出来的效果是,当用户的信息改变的时候,其他页面能快速的得到先关信息,然后进入下一步处理,在fragment中一样可以这样做,只需要实现观察者接口就行。

进入第二个页面输入相印的数据

Android观察者模式项目中基本用法

提交之后,textview上面的数据马上发送的改变。

Android观察者模式项目中基本用法

然后返回到第一个界面,一样有了数据。

Android观察者模式项目中基本用法

在平时开发中,与用户相关的肯定不只一两个页面,若是数据一个改变就去修改一些东西的画,那么会造成很到的资源浪费,我们可以直接添加一个状态,让用户切换到对应的页面然后再去赋值或者做页面的UI改变。当然也可以用异步的方式去达到一个友好的交互。

原创粉丝点击