行为型/观察者模式/Sample1.cs

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DesignModeConsole.行为型.观察者模式;

public interface Subject
{
    /// <summary>
    /// 注册观察者
    /// </summary>
    /// <param name="observer"></param>
    void RegisterObserver(Observer observer);

    /// <summary>
    /// 移除观察者
    /// </summary>
    /// <param name="observer"></param>
    void RemoveObserver(Observer observer);

    /// <summary>
    /// 通知观察者
    /// </summary>
    /// <param name="message"></param>
    void NotifyObservers(Message message);
}

/// <summary>
/// 观察者模式实现
/// </summary>
public class ConcreteSubject : Subject
{
    private List<Observer> Observers { get; set; } = new List<Observer>();

    public void RegisterObserver(Observer observer)
    {
        Observers.Add(observer);
    }

    public void RemoveObserver(Observer observer)
    {
        Observers.Remove(observer);
    }

    public void NotifyObservers(Message message)
    {
        foreach (var observer in Observers)
        {
            observer.Update(message);
        }
    }
}

/// <summary>
/// 第一个观察者
/// </summary>
public class ConcreteObserverOne : Observer
{
    public void Update(Message message)
    {
        Console.WriteLine("ConcreteObserverOne 被通知");
    }
}

后面还有 23 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。