Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com RxJava 设计理念 观察者模式 Observable lambdas MD demo地址 目录 目录常用库首先写一个最简单的观察者模式我们再对比下用 rx 写的观察者模式简化代码介绍一个操作符:map对于 map 的更多用法对 rx 设计理念的理解 常用库 implementation…
25.java中观察者模式Observable和Observer 如果想要实现观察者模式,则必须依靠java.util包中提供的Observable类和Observer接口 观察者设计模式 现在很多的购房者都在关注着房子的价格变化,每当房子价格变化的时候,所有的购房者都可以观察得到. 实际上以上的购房者就是观察者,他们所关注的房价就是被观察者 其中要求,被观察者需要继承Observable类,观察则需要实现Observer接口 具体实现如下 房价的实现 1 class House extends…
设计模式之观察者模式(Observable与Observer) 好久没有写博客啦,之前看完了<设计模式之禅>也没有总结一下,现在回忆一下设计模式之观察者模式. 1.什么是观察者模式 简单情形:有A.B.C.D等四个独立的对象,其中B.C.D这三个对象想在A对象发生改变的第一时间知道这种改变,以便做出相应的响应或者对策. 上面的这种情形,就是观察者模式. 当然可以有多个观察者,多个被观察者. 观察者与被观察者也不是对立的,一个对象可以观察其他对象,也可以被其他对象观察. 2.观察者模式的应用 为…
RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了. 异步在这里并不需要做太多的解释,因为在概念和使用上,并没有太多高深的东西.大概就是你脑子里想能到的那些多线程,线程切换这些东西.我会在后面会讲解它的用法. 我们先把观察者模式说清楚 “按下开关,台灯灯亮” 在这个事件中,台灯作为观察者,开关作为被观察者,台灯透过电线来观察开关的状态来并做出相应的处理 观察上图,其实已经很明了了,不过需要指出一…
create Observable分为cold以及hot两种,cold主要是静态的,每次subscribe都是从头开始互不干扰,而hot的在同一时刻获得的值是一致的 cold Observable 使用create创建的Observable都是属于cold的Observable @Test public void coldObs() throws InterruptedException { Observable obs=Observable.create(sub->{ //在新线程上emit对…
如果想要实现观察者模式,则必须依靠java.util包中提供的Observable类和Observer接口 观察者设计模式 现在很多的购房者都在关注着房子的价格变化,每当房子价格变化的时候,所有的购房者都可以观察得到. 实际上以上的购房者就是观察者,他们所关注的房价就是被观察者 其中要求,被观察者需要继承Observable类,观察则需要实现Observer接口 具体实现如下 房价的实现 class House extends Observable{ private double price;…
//TODO:ExpressionHelper .bindBidirectional双向绑定.以及IntegerExpression的一系列算术方法和返回的IntegerBinding暂未详细解析(比如,通过 sip.divide(2) 返回的IntegerBinding对象,是如何实现当sip修改时,其get方法的值也能做到除2[随便猜测可能就类似于单向绑定一样,维护observable并记录算术操作,在get时,调用observable.get并加上算术操作]) //注:关于观察者模式和事件…
我第一次看 四人帮 写的<设计模式>时一头雾水,现在也是,或许其是针对专业的程序员学习使用的. 通过对Ext / Backbone 源码的学习,可总结如下: 模式 - 就是对解决某一类特定问题的有效总结,并在后续解决同样的问题可以持续使用. 设计模式 - 程序开发者认为自己是优雅的设计师. 观察者模式:主要应用于组件开发,以便组件使用者 可以自行定义某个性方法,在组件达到某种状态时调用. 一.观察者模式原理 组件开发为了保证组件可以在不同的项目中都适用,其必须是对其常用功能 抽象出来 加以实现…
首先写一个观察者模式 public interface Watcher { public void update(String str); } public class ConcreteWatcher implements Watcher { @Override public void update(String str) { System.out.println(str); } } public interface Watched { public void addWatcher(Watche…
在学习RxJava的时候,经常提到观察者与被观察者,这不就是JAVA的观察者模式的运用么?是的,但是跟传统意义的上观察者模式还不太一样,所以Rxjava实际上是一种扩展的观察者模式,所以有必要对这个扩展的观察者模式做进一步的了解. 最简单的观察者模式: 对于之前写的关于Rxjava的代码先回顾一下: 但是如果我们不要修改事件,就不需要在Observable和Subscriber[它是Observer的子类]中插入Operator,那么时间Rxjava的结构如下: Observable--->Su…