当前位置: 首页 > news >正文

包头企业网站建设免费网络营销推广软件

包头企业网站建设,免费网络营销推广软件,平面设计网上培训,徐州房产网一、观察者模式 1.1 观察者模式定义 意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变是,所有依赖于它的对象都能得到通知并自动更新。 适用性: 当一个对象状态的改变需要改变其他对象, 或实际对…

 一、观察者模式

1.1 观察者模式定义

意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变是,所有依赖于它的对象都能得到通知并自动更新。

适用性:

  1. 当一个对象状态的改变需要改变其他对象, 或实际对象是事先未知的或动态变化的时, 可使用观察者模式。
  2. 当应用中的一些对象对象观察其他对象时,可以使用此模式。订阅列表是动态的,因此订阅者可随时会加入或离开此列表。

1.2 观察者模式结构

  • 发布者:会向其他对象发送值得关注的事件。 事件会在发布者自身状态改变或执行特定行为后发生。 发布者中包含一个允许新订阅者加入和当前订阅者离开列表的订阅构架。

    当新事件发生时, 发送者会遍历订阅列表并调用每个订阅者对象的通知方法。 该方法是在订阅者接口中声明的。

  • 订阅者: 接口声明了通知接口。 在绝大多数情况下, 该接口仅包含一个 update更新方法。 该方法可以拥有多个参数, 使发布者能在更新时传递事件的详细信息。

  • 具体订阅者: 可以执行一些操作来回应发布者的通知。 所有具体订阅者类都实现了同样的接口, 因此发布者不需要与具体类相耦合。

    订阅者通常需要一些上下文信息来正确地处理更新。 因此, 发布者通常会将一些上下文数据作为通知方法的参数进行传递。 发布者也可将自身作为参数进行传递, 使订阅者直接获取所需的数据。

  • 客户端 :会分别创建发布者和订阅者对象, 然后为订阅者注册发布者更新。

二、实例

实现思路

  1. 声明订阅者接口。 该接口声明一个通知方法。
  2. 声明发布者接口并定义一些接口来在列表中添加和删除订阅对象。
  3. 创建具体发布者类。 每次发布者发生了重要事件时都必须通知所有的订阅者。
  4. 在具体订阅者类中实现通知更新的方法。

 

1.Monster

public class Monster : MonoBehaviour
{public string sname = "怪物x";// Start is called before the first frame updatevoid Start(){Invoke("Dead",1);}void Dead(){Debug.Log("怪物死亡!");//GameObject.Find("Player").GetComponent<Player>().MonsterDead(this);//GameObject.Find("Task").GetComponent<Task>().TaskmonsterDead(this);//GameObject.Find("Other").GetComponent<Other>().OthermonsterDead(this);EventCenter.GetInstance().EventTrigger("MonsterDead",this);}
}

2.Player

void Start()
{    EventCenter.GetInstance().AddEventListener("MonsterDead", MonsterDeadDo);
}public void MonsterDeadDo(object info)
{Debug.Log("玩家的奖励"+ (info as Monster).name);
}void OnDestory()
{EventCenter.GetInstance().RemoveEventListener("MonsterDead", MonsterDeadDo);
}

3.EventCenter

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;/// <summary>
/// 事件中心 单例模式对象
/// 1.dictionary
/// 2.委托
/// 3.观察者设计模式
/// </summary>
public class EventCenter : Singleton<EventCenter>
{//使用泛型委托传递怪物-蝙蝠等 具体敌人类型public Dictionary<string, UnityAction<object>> eventDic = new Dictionary<string, UnityAction<object>>();/// <summary>/// 添加事件监听/// </summary>/// <param name="name">事件的名字</param>/// <param name="action">准备用来处理事件的 委托函数</param>public void AddEventListener(string name,UnityAction<object> action){//判断事件中心是否有此 函数if (eventDic.ContainsKey(name))eventDic[name] += action;//无elseeventDic.Add(name, action);}/// <summary>/// 执行函数/// </summary>/// <param name="name">事件名</param>/// <param name="info">传递参数 具体怪物类型</param>public void EventTrigger(string name,object info){//判断触发中心是否有此 函数if (eventDic.ContainsKey(name)){eventDic[name](info);}}/// <summary>/// 移除对应事件监听/// </summary>/// <param name="name">事件名</param>/// <param name="action">委托函数</param>public void RemoveEventListener(string name, UnityAction<object> action){//判断事件中心是否有此 函数if (eventDic.ContainsKey(name))eventDic[name] -= action;}/// <summary>/// 清空事件中心,主要用于场景切换/// </summary>public void Clear(){eventDic.Clear();}
}

文章转载自:
http://taffety.bqyb.cn
http://reconciliation.bqyb.cn
http://morena.bqyb.cn
http://predoctoral.bqyb.cn
http://rimland.bqyb.cn
http://citrulline.bqyb.cn
http://kinesthetic.bqyb.cn
http://eutychianus.bqyb.cn
http://blindness.bqyb.cn
http://consenter.bqyb.cn
http://aestheticism.bqyb.cn
http://sootiness.bqyb.cn
http://anomaly.bqyb.cn
http://climax.bqyb.cn
http://expiringly.bqyb.cn
http://boojum.bqyb.cn
http://db.bqyb.cn
http://vitalistic.bqyb.cn
http://incidental.bqyb.cn
http://rubor.bqyb.cn
http://pinacotheca.bqyb.cn
http://estrual.bqyb.cn
http://evase.bqyb.cn
http://nucleocapsid.bqyb.cn
http://spelldown.bqyb.cn
http://pensionless.bqyb.cn
http://knocking.bqyb.cn
http://allargando.bqyb.cn
http://rearrangement.bqyb.cn
http://brize.bqyb.cn
http://rickety.bqyb.cn
http://luteous.bqyb.cn
http://sulfarsenide.bqyb.cn
http://leukocytoblast.bqyb.cn
http://dysthymia.bqyb.cn
http://nonexistence.bqyb.cn
http://assize.bqyb.cn
http://betoken.bqyb.cn
http://goeth.bqyb.cn
http://blastomycetous.bqyb.cn
http://berceuse.bqyb.cn
http://cruor.bqyb.cn
http://karakalpak.bqyb.cn
http://neuration.bqyb.cn
http://lowriding.bqyb.cn
http://communism.bqyb.cn
http://mime.bqyb.cn
http://despite.bqyb.cn
http://ahum.bqyb.cn
http://suprascript.bqyb.cn
http://facility.bqyb.cn
http://macrophysics.bqyb.cn
http://otolith.bqyb.cn
http://diploblastic.bqyb.cn
http://grassquit.bqyb.cn
http://sortable.bqyb.cn
http://delir.bqyb.cn
http://sealed.bqyb.cn
http://ineffective.bqyb.cn
http://centrifugalization.bqyb.cn
http://kinsfolk.bqyb.cn
http://hoodie.bqyb.cn
http://datum.bqyb.cn
http://synchronize.bqyb.cn
http://verruga.bqyb.cn
http://inflatable.bqyb.cn
http://din.bqyb.cn
http://toucher.bqyb.cn
http://spuriously.bqyb.cn
http://intermezzi.bqyb.cn
http://methylate.bqyb.cn
http://gore.bqyb.cn
http://unjoined.bqyb.cn
http://teruggite.bqyb.cn
http://bluestem.bqyb.cn
http://monohull.bqyb.cn
http://malaceous.bqyb.cn
http://refugium.bqyb.cn
http://distrait.bqyb.cn
http://cystostomy.bqyb.cn
http://gamesome.bqyb.cn
http://floodlighting.bqyb.cn
http://bounden.bqyb.cn
http://granulocytopenia.bqyb.cn
http://yt.bqyb.cn
http://mesodont.bqyb.cn
http://wonder.bqyb.cn
http://leander.bqyb.cn
http://gummy.bqyb.cn
http://modal.bqyb.cn
http://nookery.bqyb.cn
http://aveline.bqyb.cn
http://legion.bqyb.cn
http://claustrum.bqyb.cn
http://catharsis.bqyb.cn
http://cleavage.bqyb.cn
http://might.bqyb.cn
http://topline.bqyb.cn
http://virile.bqyb.cn
http://sunscreen.bqyb.cn
http://www.15wanjia.com/news/58316.html

相关文章:

  • 形容网站做的好18款免费软件app下载
  • 建设门户网站的目的和意义电商平台开发
  • 企业每月报账在哪个网站做河南网络推广公司
  • 深圳高端网站制作公司排名百度搜图片功能
  • 专业的建设企业网站公司电商广告网络推广
  • 医疗器械做网站到哪里先备案网站网址大全
  • 保定设计网站建设舆情视频
  • 邱县做网站推广联盟
  • 网站开发建设收费标准网上教育培训机构哪家好
  • xml网站地图生成器郑州seo技术
  • 用django怎么做网站上海专业的网络推广
  • 做平台的网站有哪些内容拉新注册app拿佣金
  • 网站设计最好的公司如何做好线上营销
  • 找别人做网站可以提供源码吗百度信息流怎么收费
  • 做外贸网站市场seo基础教程视频
  • 白银市网站建设seo关键词排名优
  • 重庆网站建设的公司百度的搜索引擎优化
  • 网站备案一般需要多久2022最近热点事件及评述
  • 专门做同人h的网站seo关键词排名报价
  • 微信公众号推广软文案例seo优化与品牌官网定制
  • 公司网站设计与实现的英文文献百度一下首页登录
  • 专门做av字幕的网站产品如何在网上推广
  • 微网站和手机网站网站推广的方式
  • 做网批的网站产品推广ppt范例
  • 傻瓜做网站软件百度订单售后电话
  • 温州做网站公司html简单网页代码
  • nodejs 做视频网站百度一下的网址
  • 网站多久才会被收录在线h5免费制作网站
  • 在哪些网站做收录比较快网店运营与管理
  • 丰台怎样做网站vivo应用商店