实用指南:Go语言设计模式:观察者模式详解

更多内容请见100天Go语言从入门到精通系列-专栏介绍和目录

一、 观察者模式概述

1.1 观察者模式是什么?

一种行为设计模式,它定义了对象之间的一种一对多的依赖关系。当一个对象(被观察者/主题)的状态发生改变时,所有依赖于它的对象(观察者)都将得到通知并自动更新。这个模式也被称为“发布-订阅”模式,在很多场景下都非常实用,例如:就是观察者模式

  • GUI事件处理:按钮被点击(主题状态改变),通知所有注册的监听器(观察者)执行相应操作。
  • 消息队列/事件总线:生产者发布消息(主题),所有订阅了该主题的消费者(观察者)都会收到消息。
  • 模型-视图-控制器:模型数据(主题)变化时,视图(观察者)自动刷新。

1.2 模式核心概念

观察者模式主导包含四个核心角色:

  1. Subject (主题/被观察者)
    • 维护一个观察者列表。
    • 提供注册(Attach)、注销(Detach)观察者的方法。
    • 当自身状态改变时,通过 Notify 方法通知所有注册的观察者。
  2. Observer (观察者)
    • 定义一个更新接口(通常是 Update
posted @ 2025-12-03 08:53  yangykaifa  阅读(5)  评论(0)    收藏  举报