观察者模式和事件委托和代理模式

什么是观察着模式

当多个观察者想要同时观察同一个主题对象的时候,的那个主题对象也就是我们的被观察者的状态发生变化;观察者能够回调自身的方法老更新自己.
实现步骤: 第一: 定义一个观察者接口 第二 观察者实现观察者接口
第三: 要是有一个被通知着接口,里面有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中会涉及到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值