Unity中的观察者模式

看视频的时候讲到了观察者模式,感觉比较有用,这里引用别的博客的描述:

观察者模式:

1. 概述

  有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
2. 解决的问题
  将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。观察者就是解决这类的耦合关系的。

观察者模式用到了c#的delegate知识,不懂的同学可以去百度一下。

我目前觉得观察者模式很适合的地方是更新人物的属性完成时,

自动更新UI界面的相应部分,起到了牵一发动全身的效果。


下面是示例代码,大概表明观察者模式的应用过程。

首先是delegate声明的脚本:

public delegate void  OnPlayerInfoChangedEvent(InfoType infoType);
public event OnPlayerInfoChangedEvent OnPlayerInfoChanged;
然后在其他脚本UI需要更新的地方写好相应的函数,函数里面可以做相应的筛选,然后注册delegate,

 void OnPlayerInfoChanged(InfoType infoType)
    {
        if (infoType == InfoType.Name || 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值