之前一直感觉自己是代码的搬运工,直到开始使用设计模式,才逐渐发现了代码中蕴含的艺术。不多少,先介绍谁呢...观察者模式毛遂自荐了。
观察者模式是一对多的关系,其中“一”指主题,“多”指订阅者。如果一个主题发生改变,将变化通知与其关联的多个订阅者。用图描述一下:
首先观察者注册到主题上:
如果主题发生改变,会将变化通知各个订阅者:
很简单吧。其实设计模式的思想一般都是简单的。
jdk的java.util包中有Observable类(主题)和Observer接口(观察者),就是使用了观察者模式,有兴趣的可以看看。