地平线

......

C#事件支持发布者/订阅者模式(观察者模式)

C#事件支持发布者/订阅者模式,发布者将事件通知给订阅者,而订阅者在事件发生时调用已经注册好的事件处理函数。
        public delegate void delUpdate();  //委托定义,相当于一个函数签名,函数指针
        public event delUpdate ENotify;    //定义事件,该事件引发此委托类型的事件处理函数
        
        private int a = 2;
        public int A
        {
            get { return a; }
            set 
            { 
                a = value;
                if (ENotify != null)  //如果事件不等于空就是说有订阅者注册过该事件,比如:Publisher.getInstance().ENotify +=new Publisher.delUpdate(GetData);也就是说触发事件后有相应的事件处理函数被调用。
                {
                    ENotify();
                }

            }
        }

       public Observer()
        {
            Publisher.getInstance().ENotify +=new Publisher.delUpdate(GetData);
        }

        public void GetData()
        {
            oa = Publisher.getInstance().A;
            ob = Publisher.getInstance().B;
            oc = Publisher.getInstance().C;
        }

posted on 2014-04-14 17:42  烟灰缸  阅读(1534)  评论(0编辑  收藏  举报

导航