设计模式之观察者模式

  今天放假,又有时间继续啃《java设计模式》这本书了。每次学会一种设计模式内心都会有一种小小的成就感,但是懂是懂了,不知道会不会用。主要是现在没有什么项目经验,设计模式学了也派不上用场。不管怎样,学了总比没学好,以后总会派上用场的。

  首先,何为观察者模式?观察者模式是关于多个对象想知道一个对象中数据的变化的情况一种模式。比如说现在几乎所有的高校附近都会有大学生兼职中心,也就是兼职中介吧(大一大二的时候还去过,网站空间,加会员还交了100大洋呢。),兼职中心每天都会把兼职信息通知给所有的会员。这就是一个观察者模式,这里会员也就是观察者,兼职中心就是被观察者,也称作主题。

  观察者模式结构中包括四种角色:

  一、主题:主题是一个接口,该接口规定了具体主题需要实现的方法,比如添加、删除观察者以及通知观察者更新数据的方法。

  二、观察者:观察者也是一个接口,该接口规定了具体观察者用来更新数据的方法。

  三、具体主题:具体主题是一个实现主题接口的类,网站空间,该类包含了会经常发生变化的数据。而且还有一个集合,该集合存放的是观察者的引用。

  四:具体观察者:具体观察者是实现了观察者接口的一个类。具体观察者包含有可以存放具体主题引用的主题接口变量,以便具体观察者让具体主题将自己的引用添加到具体主题的集合中,让自己成为它的观察者,或者让这个具体主题将自己从具体主题的集合中删除,使自己不在时它的观察者。

  在上面的兼职中心的例子中,兼职中心就是一个具体主题,它可以更新各种兼职信息,并且通知给它的会员,当然还可以增加会员和删除会员。会员就是一个观察者,它关注着兼职中心的信息,香港虚拟主机,能够及时收到兼职中心更新过来的信息。

  代码如下:

  1.主题

1 package com.observer; Subject {4void addObserver(Observer o);5void deleteObserver(Observer o);6void notifyObservers();7 }当世界给草籽重压时,它总会用自己的方法破土而出。

设计模式之观察者模式

相关文章:

你感兴趣的文章:

标签云: