您的位置:首页 > 编程语言 > Java开发

设计模式之第18章-观察者模式(Java实现)

2015-01-29 22:58 579 查看
[b]设计模式之第18章-观察者模式(Java实现)[/b]

  话说曾小贤,也就是陈赫这些天有些火,那么这些明星最怕的,同样最喜欢的是什么呢?没错,就是狗仔队。英文的名字比较有意思,是paparazzo,这一说法据说来自意大利电影《滴露牡丹开》中一个专门偷拍明星照片的一个摄影师的名字,“Paparazzo”,中文译为帕帕拉齐,俗语就是狗仔队。这些明星因狗仔队而荣,获得曝光率,也因狗仔队而损,被曝光负面新闻,不管怎么说,总之是“火起来了”,让明星们又爱又恨。(众人:鱼哥,你扯远了)。咳咳,这个狗仔队其实嘛,也就是所谓进行监视观察活动,接下来就让观察者来给我们讲讲观察者与设计模式不得不说的那些个事儿。

[b]观察者模式之自我介绍[/b]

  额就四(我就是)观察者,也被称作依赖或者发布订阅,是在项目中经常用到的一种模式。定义如下:Define a one-to-many dependency between objects so that when one objects changes state, all its dependents are notified and updated automatically.翻译过来就是说:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者的通用类图如下:

  

public class Client{
public static void main(String[] args) {
//出来一个狗仔队
Observer paparazzo = new Paparazzo();

//曾小贤出场
ZengXiaoXian zengxiaoxian = new ZengXiaoXian();
zengxiaoxian.addObserver(paparazzo);

//看看曾小贤在干嘛
zengxiaoxian.eat();
zengxiaoxian.play();
zengxiaoxian.sleep();
}
}


View Code
  好了,基本实现就是这样子了。

[b]观察者模式之应用场景[/b]

  当你遇到以下任意一种情况,可以考虑使用额来实现:

当一个抽象模型有两个方面,其中一个依赖于另一个方面。

当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变。

当一个对象必须通知其它对象,而它又不能假定其它对象是谁。

  这个时候就轮到我登场了,狗仔队就是额,额就四狗仔队,噢耶。“动二动二,我是动幺,这里有一名疑似精神病院跑出来的患者,赶紧给予抓捕带回”,“鱼哥,救额,额不是精神病,你快告诉他们。”(作者按:少一个了,这样以后就少一个人和我抢零食了。默默离开)。金坷垃刺秦王,设计模式任我闯。

  PS:本博客欢迎转发,但请注明博客地址及作者~

  博客地址:http://www.cnblogs.com/voidy/

  博客新址:http://voidy.net

  <。)#)))≦ 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: