码迷,mamicode.com
首页 > 其他好文 > 详细

观察者模式

时间:2018-06-03 17:27:41      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:name   list   set   观察者   serve   关系   观察者模式   over   virtual   

观察者模式:一种一对多的依赖关系,多个观察者对象监听一个主题对象,主题对象变化,则通知观察者对象,让他们自动更新自己。

UML图:

技术分享图片

示例代码:

    public class Observer
    {
        public virtual void Update(string name)
        {

        }
    }
    public class ConcreteObeserver : Observer
    {
        public override void Update(string name)
        {
            Console.WriteLine(name+"发生改变触发观察者方法");
        }
    }
    public class Subject
    {
        public List<Observer> listObserver = new List<Observer>();
        private string name;
        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                Modify(name);
            }
        }

        public void Add(Observer observer)
        {
            listObserver.Add(observer);
        }

        public void Modify(string name)
        {
            listObserver.ForEach(e=> {
                e.Update(name);
            });
        }
    }
    public class ConcreteSubject : Subject
    {
    }
    class Program
    {
        static void Main(string[] args)
        {
            Observer obeserver = new ConcreteObeserver();
            Subject subject = new ConcreteSubject();
            subject.Add(obeserver);
            subject.Name = "cys";
        }
    }

 

观察者模式

标签:name   list   set   观察者   serve   关系   观察者模式   over   virtual   

原文地址:https://www.cnblogs.com/chenyishi/p/9129569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!