九折技术 九折技术
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

HoldDie

长期有耐心,一切才刚刚开始!
首页
  • Go
  • MIT-6824
  • 算法与数据结构
  • 面向对象
  • 代码整洁
  • 重构
  • 设计模式
  • 学习
  • 技术
  • 人文
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 代码整洁

  • 重构

  • 设计模式

    • 创建型-单例模式
    • 创建型-工厂模式
    • 创建型-建造者模式
    • 创建型-原型模式
    • 结构型-代理模式
    • 结构型-桥接模式
    • 结构型-装饰器模式
    • 结构型-适配器模式
    • 结构型-门面模式
    • 结构型-组合模式
    • 结构型-享元模式
    • 行为型-观察者模式
      • 行为型-模板模式
      • 行为型-策略模式
      • 行为型-责任链模式
      • 行为型-状态模式
      • 行为型-迭代器模式
      • 行为型-访问者模式
      • 行为型-备忘录模式
      • 行为型-命令模式
      • 行为型-解释器模式
      • 行为型-中介模式
    • 架构
    • 设计模式
    holddie
    2020-09-21

    行为型-观察者模式

    # 设计模式

    • 设计模式要干的事情就是解耦。
    • 创建型模式是将创建和使用代码解耦。
    • 结构型模式是将不同功能代码解耦
    • 行为型模式是将不同的行为代码解耦。

    # 什么是观察者模式?

    • Publish-Subscribe Design Pattern
    • 在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。
    • 一般情况,被依赖的对象叫做被观察者(Observable),依赖的对象叫作观察者(Observer)。
    • 实际开发过程中会有很多叫法,但都大同小异:Subject-Observer、Publisher-Subscriber、Producer-Consumer、EventEmitter-EventListener、Dispatcher-Listener。
    • 根据应用场景的不同:
      • 有同步阻塞的实现方式,也有异步非阻塞的实现方式;
      • 有进程内的实现方式,也有跨进程的实现方式。

    # 应用场景

    • 邮件订阅、RSS Feeds
    • 使用消息中间件(观察者和被观察者彻底解耦)
    • 用户注册事件
      • 发送邮件
      • 发送站内信
      • 发送短信等方式

    # 拓展问题

    # 对比“生产者 - 消费者”模型和观察者模式的区别和联系

    • 联系
      • 都在解决一种行为会导致另一种行为的方式(也就是依赖者和被依赖者)。
    • 区别
      • “生产者-消费者”模型使用异步模型,使得生产者和消费者无须关系对应关系。
      • 观察者模式既可以使用同步方式也可以使用异步方式,观察者需要提前注册到被观察者里面,等待通知。
    编辑
    #观察者模式
    上次更新: 2020/10/18, 14:10:00
    结构型-享元模式
    行为型-模板模式

    ← 结构型-享元模式 行为型-模板模式→

    最近更新
    01
    行为型-访问者模式
    11-24
    02
    行为型-备忘录模式
    11-24
    03
    行为型-命令模式
    11-24
    更多文章>
    Theme by Vdoing | Copyright © 2019-2020 HoldDie | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式