C#设计模式之观察者模式实例讲解

2019-12-26 12:12:14王旭
C#设计模式之观察者模式实例讲解

这个类图是visual studio生成的,可能看起来比较混乱把,这样的实现就是观察者模式的实现。任何时候,只要执行了Update方法,便会自动的去通知推送给订阅了此订阅号 的用户,然而在C#中,我们更多的是使用委托与事件来简化观察者模式的实现。

 

复制代码
class Program
    {
        // 委托充当订阅者接口类
        public delegate void NotifyEventHandler(object sender);

 

        // 抽象订阅号类
        public class Blog
        {
            public NotifyEventHandler NotifyEvent;
            public string Symbol { get; set; }//描写订阅号的相关信息
            public string Info { get; set; }//描写此次update的信息
            public Blog(string symbol, string info)
            {
                this.Symbol = symbol;
                this.Info = info;
            }

            #region 新增对订阅号列表的维护操作
            public void AddObserver(NotifyEventHandler ob)
            {
                NotifyEvent += ob;
            }
            public void RemoveObserver(NotifyEventHandler ob)
            {
                NotifyEvent -= ob;
            }