什么是观察着模式
当多个观察者想要同时观察同一个主题对象的时候,的那个主题对象也就是我们的被观察者的状态发生变化;观察者能够回调自身的方法老更新自己.
实现步骤: 第一: 定义一个观察者接口 第二 观察者实现观察者接口
第三: 要是有一个被通知着接口,里面有addObserver(Observer ob);removeObver(Onbserver ob); notifyObserver(Observer ob)方法
第四: 在被观察者发生变化的时候: 调用notifyObserver(Observer ob);遍历List,回调observer里面的方法.
##我们常见的观察者模式的使用
1.Android中的内容提供者就是采取了内容观察者模式:
2.RecyClerView和ListView的Adapter就是采取了观察者模式;
3.当两个界面想同时观察下载进度的话,可以采用观察者模式
第二观察着模式的优缺点
优点: 很好的解耦了通知着和观察者,观察者不需要的了解通知住着颞部是怎么实现的,方便日后的代码修改,体现了依赖到转的原则.
缺点:
1.抽象通知着还是依赖了抽象的观察者,当没有观察者的时候,是没有方法跟新的
2.要求观察者的所有动作必须一样,如果不一样的话,不能实现.
首先是RxJAVA的总结: 第一Rxjava是什么东西,主要是用于干什么的?
第二: 就是Rxjava的好处和后年的RxAbdroid的联系
第一: 什么是Rxjava: Rxjava就是: a library for composing ansynchronous and event-based programs
using observable sequences for java vm(一个在java vm上使用可观测的序列来组成异步的,基于事件的程序的库);
主要是:异步的了解
异步中我们还是用过 handle和ansyncTask 都是异步的,
他的优点不同于 handle和ansynctask俩说,最简洁的就是:简洁 随着程序逻辑变得越来越复杂,他依然能够保持简洁.
// 观察者模式的详解: 在观察中: 一个警察和一个小偷,警察(观察者)需要观察小偷(被观察者)的动作,
在小偷做出偷窃的时候做出相应的反应;这样的行为和观察者模式是十份的相近的,不一样的地方就是观察着不需要时时刻刻做出观察;
二使用过回掉,当被观察者的的一个动作发生改变的时候;通过注册或者是订阅的方式告诉观察者;被观察的一个动作发生改变
许一个实例: 点击事件 我们给一个 button设置一个点击事件 button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
button在这里面相当于是一个被观察者,而OnClickListener就是一个观察者,通过setonClickListener建立了联系
这个关系其实就是订阅的关系;
那个button被点击的时候,也就是状态发生改变,此时Framework就会将点击事件发送给注册的OnClickListener;
observable 可观察者 也就是被观察者; observer 也就是观察者 subscribe(订阅) Rxjava的回调方法中
除了普通事件(onNext()事件)还定义了俩个特殊的事件,分别是: onCompleted()和onError()事件
分别表示的是事件完成和事件处理的过程中出现错误,在一个正确运行的事件序列中有且只有一个特殊事件,并且是事
件序列的最后一个.
代理模式:
后续补上: 在AIDL中会涉及到: