Rxjava前哨——观察者设计模式

1、引言

据说现在Android开发界rxjava很热,本人在年初找工作过程中也被问到过几次,奈何笔者开发经验有限,实在是没怎么接触过,就听说过名字,于是一次次面试不得不铩羽而归,最近,静下心来,笔者想学习一下rxjava,发现,这火热的技术用到的核心思想就是观察者设计模式,现在,愿与诸君一起分享我对观察者设计模式的一些浅陋的看法

2、定义

观察者设计模式是对象的行为模式,又叫发布——订阅模式,巴拉巴拉巴拉……此处省略一万字,这些玩意儿名字贼多,简单的讲,他就是定义了一种一对多的关系,一个被观察者被多个观察者观察,当被观察者发生变化时通知所有的观察者对象做出反应


PS:想到这一对多的关系不禁让笔者想到关于晚清怪人辜鸿铭的一则趣闻,一日几个外国妇人与鸿铭谈论一夫一妻的问题,鸿铭答曰”汝曾见一茶壶配四茶杯,岂有一茶杯配四茶壶者乎?“,当时只当是笑话,却不知这里表达的其实就是一对多的关系,由此我又想到了韦小宝和他七个老婆的故事2333333,不说了,不说了,感觉车都被我开歪了,继续正经话题

3、结构

观察者设计模式既然是一对多的关系,则必然有一个被观察者、多个观察者,由于被观察者发生改变后要能通知所有观察者做出反应,所以被观察者中一般要有三个方法,一个用来添加观察者,一个用来删除观察者,还有一个通知观察者做出反应,而观察者中很显然必须要有一个作出反应的方法,我们一般会将观察者和被观察者提取出两个接口,然后分别创建他们的实现类,让他们的实现类来完成发布——订阅的关系

首先诸位先来看看我的代码结构

此处,定义了两个接口Observerable和Observer,想到刚才韦小宝的故事,体内的中二之魂又忍不住爆发了,接着又定义了他们的实现类分别是WeiXiaoBao(韦小宝),Doubler(双儿),Princess(建宁公主)(老婆太多了,实在麻烦,先娶这两房吧,韦小宝是Observerable的实现类,双儿和公主是Observer的实现类)



先贴出韦小宝的代码
韦小宝是被观察者,他有两个方法subscribe和unSubscribe方法,这俩方法就像娶老婆跟和老婆离婚的方法,此外,娶了老婆总得给老婆盖个房子于是new了一个集合,此处用的是ArrayList,如果你想让你的subscribe和unSubscribe线程安全可以将这两个方法加上同步锁,或者使用Vector集合,韦小宝这厮娶了老婆后不老实,总想着出去做坏事,做完坏事后还跟他老婆得瑟,于是他还有一个notified方法通知他所有的老婆他做了哪些坏事,在此方法中调用他老婆的update方法让他老婆做出反应

现在贴出两个观察者双儿和公主的代码


最后贴出我们的测试类,测试我们的代码
最后是我们的代码运行结果截图


总结:以上,就是我对观察者设计模式的一些理解,最后,希望大家不要觉得我是老司机,人家其实还只是个孩子

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值