位置: 编程技术 - 正文
推荐整理分享Android设计模式--观察者模式(android设计模式与最佳实践 pdf),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:android设计模式总结,android设计模式与最佳实践,android设计模式书籍,android设计模式与最佳实践 电子版,android设计模式总结,android设计模式面试题,android设计模式与最佳实践 pdf,android设计模式与最佳实践 pdf,内容如对您有帮助,希望把文章链接给更多的朋友!
问题:
在Android中,根据Android的事件树,我们知道:在与屏幕按键、触摸、滑动等操作与应用进行交互时触发的相关事件中,交互事件是沿着事件树自顶向下传播的;
当位于事件树上层的父控件接受到事件后,判断事件的所属,若需要,则截获事件,否则,向下子控件传播。
那么我们在编写各种Listener,在View各种事件函数接受和处理各类交互事件,这种处理模式,是否就是一种观察者模式呢?
问题,先放于此处。
言归正传:
观察者模式:
1、定义:
Define a one-to-many dependency between objects so that when one object changes state, all its dependents aer notified and updated automatically. 定义对象间一种一对多的依赖关系,使得当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。
2、适用:当一个对象的改变需要同时改变其他对象的时候,并且他不知道有多少对象需要改变的时候,考虑使用观察者模式;
3、目的:
观察者模式所做的工作其实就是在解耦合,让耦合的双方都依赖与抽象,而不依赖于具体使得双方的变化都不影响另一方的变化;
4、原则:观察者模式符合依赖倒转原则;
5、其他:
观察者模式是一种对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
6、简单的demo:
demo 的业务是:一个按钮对象,当按钮点击时,通知两个视图的改变;
首先是:观察者:
主题角色:
使用:
7、java库:在java中的java.util库里面,提供了一个Observable类以及一个Observer接口,构成java语言对观察者模式的支持。
使用比较简单,具体观察对象实现Observer接口,被观察者继承Observable类,即可。
比较简单,不再说明了;
8、android的运用:
回归到,上面的问题;
很明显,上述的Android事件树的传递,交互事件的监听,我们所写的Listener回调,整个监听部分就是一种观察者模式。
在我们最熟悉的点击事件中,初始化时,我们设置视图的监听:
OnClickListener接口的描述:
OnclickListener 是在View 视图内部类ListenerInfo中:
调用:
至于PerformClick的调用,则是在视图的监听OnTouchEvent等有具体的体现:
android页面多状态处理
[置顶] Android实习收获:UI细节bug引发的layout_weight深入理解 今天在修改一个布局问题时候,发现自己对权重的理解还不够。首先问题如图:一个TextView没有按要求显示完整,显示成了2行。怎么办呢?方法1:是把
Android快速开发之appBase——(5).BasePresenter的使用 转载请注明本文出自JFlex的博客
友情链接: 武汉网站建设