不见不散

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

什么是观察者模式?

何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。

在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,所以么可以根据需要增加和删除观察者,使得系统更易于扩展。

观察者模式又称为发布-订阅模式

观察者模式的优点?

1,很好的解决了一对多的依赖关系中的藕合问题,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。

2,当要在添加一个依赖对象时,不用在更改一的一端的代码.

什么时候用观察者模式?

1,此模式通常被用来实现事件处理系统。(你发了一个qq动态动态要发给那人可以看到,加群就是注册,退群就是notify)

2,还有一种更好的理解,当一件事做完成后,就可以做其它的事情了.

如:有了钱就可以买吃的,穿的,喝的.(一对多). 当你在银行里面花了钱就会,短信通知你,邮件通知你,微信通知你,你也可以取消短信通知.

使用观察者模式时的注意点?

如果在被观察者之间有循环依赖的话,被观察者会触发它们之间进行循环调用,导致系统崩溃。在使用观察者模式是要特别注意这一点。

观察者模式怎么设计,怎么弄?

 

image

很好理解的一个博客

http://blog.csdn.net/chenssy/article/details/8955696

java内置的观察模式

Observable:是一个类使用的时候子类化.

1,这个类以实现了注册,通知,移除三个方法

2,通知有两种方式(两个方法notifyObservers()与notifyObservers(Object arg))

3,调用两个通知方法之前一定要先调用setChanged();

Observer:接口里面有一个update方法

通知的时候有两种:

1,只是通知观察者我有变化了,你自己过来取数据.

2,通知你我的数据变了,并且直接把变化的数据传给你了.

posted on 2016-03-05 22:14  不见不散789  阅读(201)  评论(0编辑  收藏  举报