观察者模式
定义
观察者模式(Observer Pattern)是一种行为型设计模式,用于定义对象间的一对多依赖关系,使得当一个对象状态发生变化时,其所有依赖它的对象都会收到通知并自动更新。
核心概念
角色定义
Subject(被观察者):
持有观察者列表,维护观察者的注册和移除。
状态改变时通知所有观察者。
Observer(观察者):
定义接收通知的接口。
注册到被观察者中,等待状态变化通知。
适用场景
一个对象状态改变需要通知其他对象,而不知道具体有多少对象需要通知。
提高对象间的解耦性。
优缺点
优点:
实现松耦合。
支持动态添加/移除观察者。
缺点:
如果观察者过多,可能引起性能问题。
存在通知延迟的可能。
设计模式结构图
以下为观察者模式的 UML 设计图:
+--------------------+ +---------------------+
| Subject |<----> | Observer |
+--------------------&