引言
在软件设计中,观察者模式(Observer Pattern)是一种非常常见且实用的设计模式。它属于行为型模式,用于定义对象间的一种一对多的依赖关系,使得一个对象的状态发生变化时,所有依赖于它的对象都能自动收到通知并更新。观察者模式特别适合用于事件驱动的编程场景,例如GUI事件处理或系统通知。
观察者模式的概念
观察者模式包含两个核心角色:
- 观察者(Observer): 当主题对象状态发生变化时,需要接收通知的对象。
- 主题(Subject): 被观察的对象,当其状态发生变化时,通知所有观察者。
简单来说,观察者注册到主题对象,当主题对象的状态更新时,它会通知所有注册过的观察者对象。
C#中的观察者模式实现
我们将通过一个简单的例子来展示如何在C#中实现观察者模式。假设我们有一个股票市场,价格的波动需要通知所有关注该股票的投资者。
1. 定义主题接口 ISubject
using System;
using System.Collections.Generic;
// 主题接口,定义了添加、移除和通知观察者的功能
public interface ISubject
{
// 添加观察者
void Attach(IObserver observer);
// 移除观察者
void Detach(IObserver observer);
// 通知所有观察者
void Notify();
}
2. 定义观察者接口 IObserver
// 观察者接口,定义了更新方法,当主题状态发生变化时通知观察者
public interface IObserver
{
void Update(string stockSymbol, float price);
}</