最近在听蔡康永的201堂情商课(原谅我没有冲喜点(#.#)),由于很少听别人谈论情商,听了马东对这个课程的介绍,又试听了n*90秒(每堂课可以试听90秒),特别想听这门课程,但看这喜点,要将近200喜点,突然之间,一万头草泥马从身边呼啸而过,所以投了下机,取了下巧,至于具体细节我就不说了,你懂的( σ_σ),做饭的时候我就拿着手机听,正好打发下做饭的无聊,可谓是一举两得,说一下听后感。我们这个国家受教育的程度越来越高,自身的素质也越来越高,而评价一个人的素质的标准有,通情达理,体谅他人,高尚,见义勇为,有爱心,学识渊博等等,总之就是一些褒义词,我认为素质包括两部分,一,智商,二,情商,智商在我们上学的时候就要用到,人越大,越需要情商,因为我们都需要有一个成功的事业,美满的家庭。这门课程抓住了现代人的G点。说得简单通俗一点,这个课程就是教你怎么做一个好人,但听了大概二十多堂课,有点失望,蔡康永主要是经验之谈,闲话先扯到这里,开始今天的正经事儿
这一篇是有关Rxjava的第一篇(庆祝一下,好歹也是第一次(#.#)),Rxjava是基于观察者模式建立起来的,那问题来了,什么是观察者模式呢,我很模糊,几乎没用过,用笔记把他记下来
1.观察者模式介绍
在Java中通过Observable类和Observer接口实现了观察者模式。一个Observer对象监视着一个Observable对象的变化,当Observable对象发生变化时,Observer得到通知,就可以进行相应的工作
先上一张图,大致的流程图
UML类图2.撸起柚子就是干
先将公共的方法提取出来,面向接口编程
大致流程
当Subject的具体实现类注册监听事件后(registerObserver())得到观察者对象,当被监听的方法(addAge())改变时,通过注册的观察者对象,面向接口编程,通知观察者改变(notifyObservers())
2.1观察者(Observer)
观察者接口
public interface Observer<T> {
T update(T t);
}
2.2被观察者(Subject)
被观察者接口
public interface Subject {
//注册监听
void registerObserver(Observer observer);
//移除所有观察者
void removeAllObserver();
//移除指定观察者
void removeOneObserver(Observer observer);
//通知给观察者
void notifyObservers();
}
接下来针对特定的场景,写实现类
2.3观察者实现类
public class ConcreteObserver<T> implements Observer<T> {
@Override
public T update(T t) {
System.out.print(" "+t);
return t;
}
}
2.4被观察者实现类
@Override
public void registerObserver(Observer observer) {
if (mRegisterList == null) {
mRegisterList = new ArrayList<Observer>();
} else {
System.out.print("yi jing zhu ce le ");
}
mRegisterList.add(observer);
}
@Override
public void removeAllObserver() {
if (mRegisterList != null) {
mRegisterList.clear();
mRegisterList = null;
}
}
@Override
public void removeOneObserver(Observer observer) {
if (mRegisterList != null) {
for (Observer item : mRegisterList) {
if (observer instanceof ConcreteObserver) {
mRegisterList.remove(item);
return;
}
}
}
}
@Override
public void notifyObservers() {
if (mRegisterList != null) {
for (Observer observer : mRegisterList) {
observer.update(mAge);
}
}
}
//功能扩展
public void addAge(int age) {
mAge = age;
notifyObservers();
}
3.总结
很好理解吧,核心思想是面对接口的编程,符合开闭原则,用到了泛型,发现超级好用,希望在工作中多将设计模式用到代码中。
网友评论