概念: 又称为"发布/订阅模式", 观察者模式定义了一对多的依赖关系,让多个观察对象同时监听某一个主对象.这个主对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己.此种模式通常被用来实现事件处理系统
特点:
发布者+订阅者 = 观察者
/// <summary>
/// 通过一个例子:猫来了,老鼠a b c逃跑,猫开始追老鼠
/// </summary>
public class Animal
{
protected string Name;
public Animal(string name)
{
this.Name = name;
}
public virtual void Run()
{
}
}
public class Cat : Animal
{
public Action actions;//发布者
public Cat(string name) : base(name)
{
}
public void Coming()
{
Debug.Log(Name + "来了");
if (actions != null)
actions();
this.Run();
}
public override void Run()
{
Debug.Log(Name+"开始追三只老鼠...");
}
}
public class Mouse : Animal
{
public Mouse(string name,Cat cat):base(name)
{
cat.actions += this.Run;//订阅者
}
public override void Run()
{
Debug.Log(Name + "逃跑");
}
}
public class console : MonoBehaviour {
void Start () { //从始至终就执行一次
Cat cat = new Cat("小野猫");
Animal mouseA = new Mouse("mouseA", cat);
Animal mouseB = new Mouse("mouseB", cat);
Animal mouseC = new Mouse("mouseC", cat);
cat.Coming();
}
void Update () {//每帧执行一次
}
}