java设计模式2-观察者模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计模式2-观察者模式相关的知识,希望对你有一定的参考价值。
什么是观察者模式?
何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。
在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,所以么可以根据需要增加和删除观察者,使得系统更易于扩展。
观察者模式又称为发布-订阅模式
观察者模式的优点?
1,很好的解决了一对多的依赖关系中的藕合问题,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。
2,当要在添加一个依赖对象时,不用在更改一的一端的代码.
什么时候用观察者模式?
1,此模式通常被用来实现事件处理系统。(你发了一个qq动态动态要发给那人可以看到,加群就是注册,退群就是notify)
2,还有一种更好的理解,当一件事做完成后,就可以做其它的事情了.
如:有了钱就可以买吃的,穿的,喝的.(一对多). 当你在银行里面花了钱就会,短信通知你,邮件通知你,微信通知你,你也可以取消短信通知.
使用观察者模式时的注意点?
如果在被观察者之间有循环依赖的话,被观察者会触发它们之间进行循环调用,导致系统崩溃。在使用观察者模式是要特别注意这一点。
观察者模式怎么设计,怎么弄?
很好理解的一个博客
http://blog.csdn.net/chenssy/article/details/8955696
java内置的观察模式
Observable:是一个类使用的时候子类化.
1,这个类以实现了注册,通知,移除三个方法
2,通知有两种方式(两个方法notifyObservers()与notifyObservers(Object arg))
3,调用两个通知方法之前一定要先调用setChanged();
Observer:接口里面有一个update方法
以上是关于java设计模式2-观察者模式的主要内容,如果未能解决你的问题,请参考以下文章