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-观察者模式的主要内容,如果未能解决你的问题,请参考以下文章

Java描述设计模式(11):观察者模式

设计模式-观察者模式JAVA实现

JAVA设计模式之观察者模式

java设计模式3--观察者模式

JAVA设计模式之观察者模式

Java单体应用 - 架构模式 - 03.设计模式-20.观察者模式