少于 1 分钟阅读

之前使用C#和C++实现过观察者模式,本质上C#的实现利用的是System.EventHandler类,其基于多播委托实现了语言内置的观察者模式。

实现起来很简单。支持注册事件的类如下:

public class ObservableSubject
{
    public class EventArgument
    {
        public EventArgument(string concreteArgument) =>
            ConcreteArgument = concreteArgument;
        public string Car { get; }
    }

    public event EventHandler<EventArgument>? ObservableEvent;

    public void RaiseObservers(EventArgument argument) =>
        ObservableEvent?.Invoke(this, argument);
}

内部的事件是公开的,所以外部类可以注册,调用代码我觉得不需要专门写了吧…

分类:

更新时间: