观察者设计模式:
观察者模式描述的是一种一对多的关系「一个被观察者对应多个观察者」,当被观察者的状态发生改变时,所有观察者都会得到通知。通俗的理解:观察者模式就是在特定的时刻「被观察者发送通知」干特定的事情「观察者收到通知处理自己相应的事件」
观察者模式的三要素:观察者,被观察者,事件「订阅」
Observer 模式是一种松耦合的设计模式
如果结合委托与事件会非常简单,代码如下:
public delegate void MyObserverEventHandler();
public class ObserverA
{
public void ASeeMyObserver()
{
Debug.Log("我看见了被观察者动了");
}
}
public class ObserverB
{
public void BSeeMyObserver()
{
Debug.Log("我看见了被观察者动了");
}
}
public class Observable
{
public event MyObserverEventHandler MyObserver;
public void Run()
{
//==MyObserver?.Invoke();
if (MyObserver != null)
{
MyObserver();
}
}
}
主函数
//主函数
class Program
{
static void Main(string[] args)
{
ObserverA a = new ObserverA();
ObserverB b = new ObserverB();
Observable ob = new Observable();
ob.MyObserver += a.ASeeMyObserver;
ob.MyObserver += b.BSeeMyObserver;
ob.Run();
}
}