观察者

為{幸葍}努か 提交于 2019-11-27 20:12:02
    public delegate void CatCall();    public class Cat : subject    {        public void cry()        {            Console.WriteLine("猫叫了~");            this.fireAway();        }    }    public class subject    {        public event CatCall myEnvet;        protected void fireAway()        {            if (this.myEnvet != null)            {                this.myEnvet();            }        }    }    public abstract class Observer    {        public Observer(subject sub)        {            sub.myEnvet += new CatCall(Response);        }        public abstract void Response();    }    public class Mouse : Observer    {        private string MouseName;        public Mouse(subject sub, string name)            : base(sub)        {            this.MouseName = name;        }        public override void Response()        {            Console.WriteLine(MouseName + "快跑,喵星人来了!");        }    }    public class H : Observer    {        public H(subject sub)            : base(sub)        {        }        public override void Response()        {            Console.WriteLine("老鼠把我吵醒了!");        }    }    public class dos    {        static void Main()        {            Cat cat = new Cat();            Mouse mouse1 = new Mouse(cat, "Tom");            Mouse mouse2 = new Mouse(cat, "jack");            H h = new H(cat);            cat.cry();            Console.ReadKey();        }    }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!