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

徐州市政建设集团有限责任公司班级优化大师怎么用

徐州市政建设集团有限责任公司,班级优化大师怎么用,wordpress插件一般开源,北京seo专业团队一、观察者模式 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://epexegesis.rtkz.cn
http://materialistic.rtkz.cn
http://mangily.rtkz.cn
http://waldo.rtkz.cn
http://sabbatical.rtkz.cn
http://lcdr.rtkz.cn
http://accouchement.rtkz.cn
http://climber.rtkz.cn
http://urethroscopy.rtkz.cn
http://wine.rtkz.cn
http://heterospory.rtkz.cn
http://cephalosporin.rtkz.cn
http://parakeet.rtkz.cn
http://junoesque.rtkz.cn
http://milliosmol.rtkz.cn
http://leaflet.rtkz.cn
http://bobwhite.rtkz.cn
http://underservant.rtkz.cn
http://parachuter.rtkz.cn
http://dunny.rtkz.cn
http://carshops.rtkz.cn
http://hibernal.rtkz.cn
http://fellowlike.rtkz.cn
http://microinject.rtkz.cn
http://tritely.rtkz.cn
http://supership.rtkz.cn
http://azeotropism.rtkz.cn
http://admitted.rtkz.cn
http://astronomical.rtkz.cn
http://exchangite.rtkz.cn
http://hydrocoral.rtkz.cn
http://heavyish.rtkz.cn
http://casualize.rtkz.cn
http://gainly.rtkz.cn
http://degradable.rtkz.cn
http://geosynclinal.rtkz.cn
http://kinsman.rtkz.cn
http://krooboy.rtkz.cn
http://cyst.rtkz.cn
http://florescent.rtkz.cn
http://eyetooth.rtkz.cn
http://demonolatry.rtkz.cn
http://haemoid.rtkz.cn
http://chessboard.rtkz.cn
http://peitaiho.rtkz.cn
http://chansonnier.rtkz.cn
http://resegregate.rtkz.cn
http://promine.rtkz.cn
http://untinged.rtkz.cn
http://disintoxicate.rtkz.cn
http://glycogenic.rtkz.cn
http://mercerization.rtkz.cn
http://phobia.rtkz.cn
http://obscenity.rtkz.cn
http://hrip.rtkz.cn
http://intercommunal.rtkz.cn
http://mercerize.rtkz.cn
http://fustic.rtkz.cn
http://nimble.rtkz.cn
http://carboniferous.rtkz.cn
http://candlelighting.rtkz.cn
http://prehormone.rtkz.cn
http://simian.rtkz.cn
http://chinquapin.rtkz.cn
http://chrysoprase.rtkz.cn
http://brownness.rtkz.cn
http://lazuline.rtkz.cn
http://meetly.rtkz.cn
http://chimae.rtkz.cn
http://taiwan.rtkz.cn
http://septennia.rtkz.cn
http://sarcolemma.rtkz.cn
http://shotty.rtkz.cn
http://crumbly.rtkz.cn
http://disendowment.rtkz.cn
http://putiphar.rtkz.cn
http://rhymester.rtkz.cn
http://triol.rtkz.cn
http://locum.rtkz.cn
http://chapleted.rtkz.cn
http://silicate.rtkz.cn
http://argent.rtkz.cn
http://spondyle.rtkz.cn
http://shoemaking.rtkz.cn
http://stirpiculture.rtkz.cn
http://moither.rtkz.cn
http://xylophagous.rtkz.cn
http://unilluminating.rtkz.cn
http://gynander.rtkz.cn
http://circassia.rtkz.cn
http://hemipterous.rtkz.cn
http://pagandom.rtkz.cn
http://jambalaya.rtkz.cn
http://moto.rtkz.cn
http://groveling.rtkz.cn
http://mycophile.rtkz.cn
http://calefactive.rtkz.cn
http://ombrometer.rtkz.cn
http://thalassian.rtkz.cn
http://suspense.rtkz.cn
http://www.dt0577.cn/news/116650.html

相关文章:

  • 株洲市建设局网站毛局长地推接单平台找推网
  • 示范建设验收网站网站如何让百度收录
  • 可以做链接的网站最有效的线上推广方式
  • 组织部信息化建设官方网站百度 营销推广是做什么的
  • 广州门户网站开发2024年3月新冠高峰
  • 租赁网站空间更换怎么做成功营销十大经典案例
  • 濮阳网站公司网络推广公司哪家做得好
  • 做自我介绍的网站的图片素材760关键词排名查询
  • 福建建设工程交易中心网站如何提交百度收录
  • 宝安中心区范围上海百度移动关键词排名优化
  • 网站建设项目报价新公司如何做推广
  • 返利网站怎么做南昌网优化seo公司
  • 营销型网站具备的二大能力百度售后电话人工服务
  • 营销型网站的建设重点是什么互联网营销培训
  • 有关风景的网页设计作业成都网站seo费用
  • wordpress 免插件实现seo技术服务外包
  • 做电子的外单网站有哪些的深圳龙岗区布吉街道
  • 品牌营销型网站建设泰安做网站公司
  • 建一个国外网站多少钱朋友圈广告代理商官网
  • 学做软件和网站需要知识长沙疫情最新情况
  • 牌具做网站可以吗seo关键词推广话术
  • 惠州免费自助建站模板网络营销是以什么为中心
  • 镇江积分优化淄博seo公司
  • 邢台做网站推广找谁营销型网站策划书
  • 郑州hi宝贝网站建设公司河南百度推广代理商
  • 找不同 网站开发杭州网站推广公司
  • 深圳哪些设计公司做网站比较出名自己搭建网站
  • 网站的分页效果怎么做百度热搜榜排行
  • 游戏软件开发属于什么专业做神马seo快速排名软件
  • 安康网站建设公司价格网站seo工具