观察者模式通常通过事件来实现。
这是一个例子:
using System;class Observable{ public event EventHandler SomethingHappened; public void DoSomething() => SomethingHappened?.Invoke(this, EventArgs.Empty);}class Observer{ public void HandleEvent(object sender, EventArgs args) { Console.WriteLine("Something happened to " + sender); }}class Test{ static void Main() { Observable observable = new Observable(); Observer observer = new Observer(); observable.SomethingHappened += observer.HandleEvent; observable.DoSomething(); }}
有关更多详细信息,请参见链接的文章。
请注意,以上示例使用C#6 空条件
运算符
DoSomething安全地实现了处理
SomethingHappened尚未订阅的情况,因此为null。如果您使用的是旧版本的C#,则需要这样的代码:
public void DoSomething(){ var handler = SomethingHappened; if (handler != null) { handler(this, EventArgs.Empty); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)