观察者模式

概念: 又称为"发布/订阅模式", 观察者模式定义了一对多的依赖关系,让多个观察对象同时监听某一个主对象.这个主对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己.此种模式通常被用来实现事件处理系统

特点:
发布者+订阅者 = 观察者

/// <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 () {//每帧执行一次
       
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值