news 2026/6/10 21:40:57

观察者模式与事件中心

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
观察者模式与事件中心

观察者模式与事件中心

观察者模式和事件中心的关系

事件中心是观察者模式的中心化类型,观察者模式比事件中心更广义,不使用事件中心,两个类,类B监听类A的事件,也是观察者模式。

为什么要用事件中心?

我觉得在Unity里最大的原因还是脚本的生命周期不适合两两的观察者模式。

写一个不用事件中心的观察者模式,类B监听类A的事件,A和B都继承MonoBehaviour,马上会发现,如果A先于B创建(需要在脚本执行顺序里设置脚本优先级),那么也会先于B销毁,B试图取消监听时,A已经销毁。

这样还算能用,假如现在A也要监听B呢??(假设A是UI,B是管理器,A收到输入通知B处理,B处理完要通知A刷新显示)任意一方先创建,它都会找不到自己要监听的对象。

那么解决方法就是搞一个生命周期比所有MonoBehaviour都长的对象。

直接调用、监听委托、事件中心,如何选用?

看要调用的函数获取到的难度,或者说调用链长度。

  1. 要执行的函数就是此函数的参数的成员方法时,直接调用。
  2. 要执行的函数只在这个类的部分对象要执行,毫不犹豫使用观察者模式。比如背包数据类,有很多对象,只有玩家那个需要触发面板刷新,那背包数据类如果引用面板还要判断自己是不是玩家的背包?
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:10:13

钉钉开发“待办“接口版本调研

钉钉开发"待办"接口版本调研 结论速览 旧版 (WorkRecord / OA消息):本质是“消息”。入口在“工作通知”会话窗口中。数据孤岛,无法与钉钉主界面的“待办”Tab打通。新版 (Todo 2.0):本质是“任务”。入口在钉钉底部的“待办”Tab…

作者头像 李华
网站建设 2026/6/10 10:23:19

什么是双工模式

前言 你是否曾思考过,为什么现代网络能够同时处理上传和下载,而早期的网络设备却像对讲机一样,一次只能完成一个动作?这背后是以太网双工模式的技术演进——从半双工到全双工的变革,彻底改变了数据传输的方式。 半双工:马路上单车道的智慧 半双工模式如同一条单车道马…

作者头像 李华
网站建设 2026/6/10 11:38:04

NVIDIA官方背书:TensorRT镜像为何成为行业标准?

NVIDIA官方背书:TensorRT镜像为何成为行业标准? 在当今AI系统部署的战场上,一个看似不起眼的容器镜像,正悄然决定着整个服务的成败——不是模型本身,而是它背后的运行环境。当一家自动驾驶公司因为推理延迟超标而错失关…

作者头像 李华
网站建设 2026/6/10 11:39:13

Vue项目中Axios全面封装实战指南

引言在现代前端开发中,HTTP请求是应用与后端交互的核心环节。Axios作为目前最流行的HTTP客户端库,以其简洁的API和强大的功能受到广泛青睐。然而,直接在项目中裸用Axios会导致代码冗余、维护困难等问题。本文将深入探讨如何在Vue项目中全面封…

作者头像 李华
网站建设 2026/6/10 1:00:24

YOLO11 Neck改进:引入密集连接DenseNet思想,在FPN/PANet的融合路径上,引入密集连接,让每个层都能接收到前面所有层的特征,增强特征流通

🎬 Clf丶忆笙:个人主页 🔥 个人专栏:《YOLOv11 全栈指南:基础到魔改实战 》 ⛺️ 努力不一定成功,但不努力一定不成功! 文章目录 一、YOLO11 Neck架构概述 1.1 YOLO11 Neck的基本结构与功能 1.2 FPN/PANet在YOLO11中的应用 1.3 传统特征融合方法的局限性 二、密集连…

作者头像 李华