标签:
观察者模式就是一个事物的发生、同时会导致另一个事物的发生,这两个事物之间的联系用程序来做。就是观察者模式。
例如:群里发了一个红包,这个事件就导致群员之间都在抢。
突然下了大雨,人们都打开雨伞。
电话突然响起,就有人接听
等等。。。。。
用代码如何实现呢?
1、事件的创造者
2、观察者
代码:
事件的创造者:
public class Baby { public Baby(string name) { BabyName = name; } private string BabyName; public event Action<string> BabyCry; // public event Action BabyCry; public void Cry() { Console.WriteLine("{0}、小朋友哭了", BabyName); if (BabyCry != null) BabyCry(BabyName); } }
观察者:
public class Grandma { public void Coax(string name) { Console.WriteLine("{0},Coax,{1}", GetType(), name); } } public class Grandpa { public void See(string name) { Console.WriteLine("{0},See,{1}", GetType(), name); } } public class Mother { public void hold(string name) { Console.WriteLine("{0},hold,{1}", GetType(), name); } } public class Father { public void ask(string name) { Console.WriteLine("{0},ask,{1}", GetType(), name); } }
使用:
Baby baby = new Baby("小苹果"); baby.BabyCry += new Father().ask; baby.BabyCry += new Mother().hold; baby.BabyCry += new Grandpa().See; Grandma grandma = new Grandma(); baby.BabyCry += grandma.Coax; baby.Cry(); Console.WriteLine("--------------------------------------"); ////去掉一个 baby.BabyCry -= grandma.Coax; baby.Cry(); Console.ReadLine();
运行结果:
标签:
原文地址:http://www.cnblogs.com/lystory/p/5686959.html