观察者模式(Obserable-Observer)
为什么学习这个模式呢?
Fuck,why should I know !不过这个设计模式jdk居然内置了就如多线程框架Executor,这足以说明用的very much,不然怎么被jdk纳为小妾了呢。
书上的说明很能说服人,说AWT中按钮的触发事件就是用了观察者模式,通俗点说就是,“滴”你按了一个Button,按钮速度通知观察者(事件管理器)
然后执行了该按钮的Job,比如打印“再按,弄你哟!”
不扯淡了,先解释下这个模式吧。
Observable(被观察对象) Observer(观察者)
JDK中Observable已经有了基本的功能(addObserver,delObserver等),自己用的时候可以继承他,自己实现一些需要的功能
例如:这是一个注册任务管理器
setChanged方法,源码很简单,将标志位置为true,随后,notifyObservers通知观察者状态已经变化,该行动了。
下面就介绍下所谓的观察者(Observer)吧
实现JDK内置的Observer接口,最重要的就是重写update方法,当被观察对象上报通知时调用的就是这个update方法
例如
那当然,这两个怎么联系起来,不然被观察对象也不知道通知谁
如下:
自此观察者模式已经结束,Fuck,这就结束了?完全看不懂。。。
小弟愚见(Just个人观点,求大神勿喷):
其实观察者模式主要就是解决项目中在未知时刻触发并且触发了需要立刻响应的问题,就比如定时炸弹
例如设置了2个小时后爆炸,我们不需要等待两个小时再去点燃或者按下按钮,炸弹本身的定时装置就是被观察对象,时间到了
就去通知炸弹,炸弹执行update,自毁程序。OK,bong!Game Over!