最近在看Rxjava,涉及到观察者模式。在这里复习下观察者模式。
这里不具体说观察者模式的组成,只讲些我自己的想法。具体的观察者模式的组成都是为了操作简洁。
观察者模式是设计模式的一种。这种设计模式中涉及到两个对象,一个是观察者,一个是被观察者。
生活中的观察者模式和程序中的观察者模式略有不同。
生活中的观察者模式:比如说考试的时候,老师为了防止学生作弊,需要一直监视学生的动作,有作弊的小动作就拉出去枪毙。其中老师是观察者,学生是被观察者。观察者通过时刻监视学生,当学生有作弊这个行为的时候就执行枪毙的行为。执行枪毙的事件是建立在老师时刻监视学生的基础上。
这种生活中的观察者模式是一种时时刻刻监听的观察者模式,程序中的观察这模式其实是通过事件响应来达到效果的。比如说点击事件。对于一个被设置了监听事件的view,其中的view就是被观察者,onclicklistener是观察者。二者是通过setonclicklistener来监听被观察者的。当view通过setonclicklistener联系观察者和被观察者。当view触发setonclicklistener之后,观察者onclicklistener就执行观察者自己设定好的方法。
这里不具体说观察者模式的组成,只讲些我自己的想法。具体的观察者模式的组成都是为了操作简洁。
观察者模式是设计模式的一种。这种设计模式中涉及到两个对象,一个是观察者,一个是被观察者。
生活中的观察者模式和程序中的观察者模式略有不同。
生活中的观察者模式:比如说考试的时候,老师为了防止学生作弊,需要一直监视学生的动作,有作弊的小动作就拉出去枪毙。其中老师是观察者,学生是被观察者。观察者通过时刻监视学生,当学生有作弊这个行为的时候就执行枪毙的行为。执行枪毙的事件是建立在老师时刻监视学生的基础上。
这种生活中的观察者模式是一种时时刻刻监听的观察者模式,程序中的观察这模式其实是通过事件响应来达到效果的。比如说点击事件。对于一个被设置了监听事件的view,其中的view就是被观察者,onclicklistener是观察者。二者是通过setonclicklistener来监听被观察者的。当view通过setonclicklistener联系观察者和被观察者。当view触发setonclicklistener之后,观察者onclicklistener就执行观察者自己设定好的方法。