zoukankan      html  css  js  c++  java
  • 观察者模式详解

    官方定义:定义对象之间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。

    认识观察者模式:

      1、目标与观察者之间的关系:目标与观察者之间是一对多的关系。

      2、单向依赖:只有目标知道什么时候通知观察者。

      3、命名模式:又称为发布-订阅模式,目标接口定义后面跟subject,观察者接口定义后面跟observer,观察者接口的更新方法建议为update,方法的参数是根据需要定义的。

      4、触发通知的时机:先改变后通知。

    观察者实现的两种方式:

      1、推模型:目标对象主动向观察者推送目标的详细信息,推送的信息通常是目标对象的全部或部分数据。

      2、拉模型:目标对象在通知的时候只传递少量信息,如果观察者需要更具体的信息,由观察者主动到目标对象获取,相当于是观察者主动在目标对象中拉数据。

    两种模式的比较:

      1、推模型是假定目标对象知道观察者所需要的数据,而拉模型是目标对象具体需要什么数据,直接把自生传递给观察者,由观察者来取值,推模型会使观察者对象难以复用;

      2、拉模型下,update方法的参数是对象本身,基本可以适应各种情况的需要。

    观察者的优点:

      1、观察者模式实现了观察者和目标之间的抽象耦合。

      2、观察者模式实现了动态联动。

      3、观察者模式支持广播通信。

    观察者的缺点:

      1、可能会引起无畏的操作。

    观察者模式衍生:

      如果观察者有个性化的设置,则需要在通知的时候区别对待。

  • 相关阅读:
    设计模式之——浅谈strategy模式(策略模式)
    设计模式之——bridge模式
    验证ip地址
    查询sqlserver数据库表的记录数
    iis网站部署常见错误
    asp.net 向后台提交 html 代码段 包括 <> 标签
    jquery花式图片库——jqFancyTransitions
    为sqlserver数据库添加专用用户名
    sqlserver 收缩数据库/文件
    你使用的ie版本过低请。。。
  • 原文地址:https://www.cnblogs.com/niuyg928/p/11300008.html
Copyright © 2011-2022 走看看