没有合适的资源?快使用搜索试试~ 我知道了~
Android学习 ContentProvider数据更新与Observer模式.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 81 浏览量
2022-07-06
18:14:34
上传
评论
收藏 423KB DOC 举报
温馨提示
试读
22页
Android学习ContentProvider数据更新与Observer模式一Observer模式意图: 定义对象之间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被更新。 依赖(Dependents)、发布-订阅(Publish-Subscribe)。处理一对多情况下对象之间的依赖关系。对象之间必然会存在依赖关系或者依赖关系会处于变动之中,如何解决依赖关系使他们之间的耦合性达到最小。适用性: l 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。HYPERLINK"htt
资源推荐
资源详情
资源评论
Android 学习 ContentProvider 数据更新
与 Observer 模式
一 Observer 模式
意图:
定义对象之间一种一对多的依赖关系,当一个对象的状态发生改
变时,所有依赖于它的对象都得到通知并被更新。
依赖(Dependents)、发布-订阅(Publish-Subscribe)。
处理一对多情况下对象之间的依赖关系。
对象之间必然会存在依赖关系或者依赖关系会处于变动之中,如何解
决依赖关系使他们之间的耦合性达到最小。
适用性:
l 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。
http://fz.qqq23.com 将二者封装在独立的对象以使他们各自独立
的改变和复用;
l 当一个对象的改变需要同时改变其他对象,而不知道具体有多
少对象有待改变。
l 当一个对象必须通知其他对象,而它又不能假定其他对象是谁。
结构:
Subject 维护的对象状态谁会去改变呢?书上提到
是某 Observer 去改变,但也不一定如此;
Subject 维护某一对象,对象的具体如何改变可以和 Subject 是没
有关系,仅仅是知道对象状态改变了,
需要通知其他对象;对象状态的改变是有很多层次或者方式进行,不
限于由 Observer 来改变。
更新由谁来触发呢?一是可以谁改变对象的状态谁来触发
更新,这样各 Observer 状态的可以得到立即更新,
而且不需要客户端去负责更新,属于自动进行更新,但是每一次的对
象状态变化都会执行更新,然而往往对象状态变化
是多个连续性的变化或者好几个变化间隔非常短,造成更新次数过多
又非必要性的,降低效率;
二是由客户端负责更新,就可以控制何时进行更新最合适,避免整个
状态变化中进行更新,而是整个连续性状态改变完成之后
一次性更新,但是此举将更新责任交给客户端,往往造成遗漏等不确
定的缺陷。
对象状态变化怎么传递?一是在执行更新 Update 时,
将对象以参数的形式传递给 Observer 一步到位——推模型,
对象的类型如何?(Subject\State\…),提供太多数据和细节可
能造成某些缺陷,而且提供这些数据并不总是需要;
二是提供接口供 Observer 访问获取状态或者变化细节——拉模型,
这样造成双向的通信形式,且不能确定提供什么样信息合适,
依赖性太强耦合性高;三是通过其它方式渠道,主动的去查询获取对
象的状态;所以这三种方式都有其优缺点,
对象状态变化会有多种情况,如何传递状态变化的信息,可能需要具
体问题具体分析解决。
对象变化了,会触发 Subject 的更新通知函数执行,完全不用
关心谁关注此变化,有多少对象关注此变化;
而且都是通过抽象类实现,可以完全针对此接口进行编程,依赖于抽
象而不是实现,降低 Subject 和 Observer 之间的耦合性。
所以 Subject 可以不知道有何 Observer 和多少 Observer 的
存在,Observer 需要知道 Subject 的存在。
二 Android 中信息列表数据更新流程
在信息列表信息数据的变化需要及时反馈到界面上来,数据的存
储是以 SQLite 数据库存储,
以 ContentProvider 形式访问;数据变化时是如何更新的呢?
看一下面这个图:
看到信息部分数据变化更新实现是在 CursorAdapter 中;
——>ContentObserver 监听到数据变化消息之后;
——>通知 CursorAdapter 数据内容有变化;
——>通知信息相关的类进行数据更新重新进行查询;
剩余21页未读,继续阅读
资源评论
oligaga
- 粉丝: 50
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功