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

上海专业的网站公seo搜索引擎优化人才

上海专业的网站公,seo搜索引擎优化人才,西宁企业做网站,网站界面可以做版权吗设计模式—观察者模式 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决的问题:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,…

设计模式—观察者模式

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

主要解决的问题:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。

何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。

示例:Unity中的观察者模式
  1. 定义一个可观察类(Subject)

首先,我们需要定义一个包含事件的类,这个类将在某个状态发生变化时通知所有已注册的观察者。

using System;
using UnityEngine;public class GameEventPublisher : MonoBehaviour
{public static GameEventPublisher Instance;// 定义一个委托类型,用于声明事件public delegate void GameEventHandler(string message);// 声明一个事件,类型为上面定义的委托类型public static event GameEventHandler OnGameEvent;private void Awake(){if (Instance == null){Instance = this;}else{Destroy(gameObject);}}// 模拟一个状态变化的方法public void TriggerEvent(string message){// 如果有订阅者,则触发事件OnGameEvent?.Invoke(message);}
}
  1. 创建观察者类(Observer)

接下来,我们创建一个或多个观察者类,这些类将监听并响应由GameEventPublisher发布的事件。

using UnityEngine;public class GameEventListener : MonoBehaviour
{// 在Start方法中订阅事件private void Start(){GameEventPublisher.OnGameEvent += HandleGameEvent;}// 当事件被触发时调用此方法private void HandleGameEvent(string message){Debug.Log("收到事件: " + message);}// 在OnDestroy方法中取消订阅以避免内存泄漏private void OnDestroy(){GameEventPublisher.OnGameEvent -= HandleGameEvent;}
}
  1. 触发事件

为了测试这个模式,你可以在你的游戏逻辑中某处调用TriggerEvent方法,例如通过用户输入、定时器或其他游戏事件触发。


if (Input.GetKeyDown(KeyCode.Space))
{gameEventPublisher.TriggerEvent("Space键被按下");
}

这样,当按下空格键时,GameEventPublisher会触发事件,所有订阅了OnGameEvent的观察者都会收到通知,并执行相应的操作(在这个例子中是打印一条消息到控制台)。

这种模式使得代码更加模块化和易于维护,因为它允许对象之间进行松散耦合的通信。通过使用事件和委托,你可以轻松地添加新的观察者,而无需修改现有的发布者代码。

http://www.yidumall.com/news/61075.html

相关文章:

  • 做民宿要给网站多少合同钱黑龙江网络推广好做吗
  • 10大免费软件下载网站海外短视频跨境电商平台是真的吗
  • 厦门专业做网站 厦门做网站的公司 厦门做服饰网站百度搜索风云榜游戏
  • phpcms做网站好吗全球搜钻
  • 网站建设如何做搜索引擎营销的实现方法有
  • 广州网站设计制作报价免费云服务器
  • 微信手机官方网站首页青岛谷歌推广
  • 铁岭做网站公司哪家好网络营销都具有哪些功能
  • 有那个网站做外贸肇庆百度快照优化
  • 德州商城网站建设google商店
  • 公司网站策划方案搜索引擎营销的主要方法
  • 建设网站公司域名太原网站推广公司
  • 深圳外贸平台建站seo网址优化靠谱
  • 上海建设网站的公司怎么找网站
  • 做100个网站挂广告联盟网络流量分析工具
  • 微信怎么做收费视频网站站长之家whois查询
  • 做暖暖视频免费老司机网站口碑营销例子
  • 宿州市做网站的公司东莞网络优化哪家好
  • 无锡百度推广代理商北京seo百度推广
  • 游戏门户网站 织梦网站换友链平台
  • 凡科网可以免费做网站吗营销策划公司收费明细
  • 360网站推广怎么做体验营销策划方案
  • 北京做网站推广兼职怎样和政府交换友链
  • 什么是网络营销? 你觉得网络营销的核心是什么?厦门seo屈兴东
  • 帮助设计的网站电脑培训学校学费多少
  • phpmysql网站开发全程实例百度网址提交
  • 如何转移网站全网整合营销平台
  • 批发价格广州网站建设上海专业seo服务公司
  • 北控京奥建设有限公司网站百度免费安装
  • 郑州网站建设项目专业搜索引擎seo合作