C#观察者设计模式

观察者设计模式:

观察者模式描述的是一种一对多的关系「一个被观察者对应多个观察者」,当被观察者的状态发生改变时,所有观察者都会得到通知。通俗的理解:观察者模式就是在特定的时刻「被观察者发送通知」干特定的事情「观察者收到通知处理自己相应的事件」

观察者模式的三要素:观察者,被观察者,事件「订阅」

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();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值