观察者设计模式
通过猫捉老鼠这个例子来弄清楚委托和事件并且对他们的用途有更深的认识。
在这里,猫是被观察者,老鼠是观察者。当观察者发生动作时,观察者对应的就会有相应的动作,比如猫开始移动了,老鼠就相应地都逃跑了。又比如在游戏中,被观察者是一个开始按钮,当它被点击的时候,观察者(美术资源、音乐资源、场景资源等)就会开始加载。
猫捉老鼠
首先我们定义一个Cat类
class Cat
{
private string name;
private string color;
public Cat(string name, string color)
{
this.name = name;
this.color = color;
}
public void CatComing()
{
Console.WriteLine(color+"的猫"+name+"来了");
}
}
还需要一个Mouse类
class Mouse
{
private string name;
private string color;
public Mouse(string name,string color,Cat cat)
{
this.name = name;
this.color = color;
}
public void RunAway()
{
Console.WriteLine(color+"的老鼠"+name+"正在逃跑");
}