zoukankan      html  css  js  c++  java
  • java设计模式2-观察者模式

    什么是观察者模式?

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

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

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

    观察者模式的优点?

    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,通知你我的数据变了,并且直接把变化的数据传给你了.

  • 相关阅读:
    前端 HTML
    python3内置函数
    内置函数的随机验证码
    线程、进程以及协程,上下文管理器
    线程池的定义方法
    python_控制台输出带颜色的文字方法
    while 循环 continue break 用法例子
    JVM 基础知识
    ios 设置状态栏文本颜色为白色
    ios 常用第三方库要加的framework,ARC的设置
  • 原文地址:https://www.cnblogs.com/yinyu/p/5246073.html
Copyright © 2011-2022 走看看