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

一个通用游戏后台的设计模式实践总结

搞业务开发的时候,发现有一些代码的开发会让人感觉非常简便舒服,有一些代码的开发却有时候会让人感觉心智负担比较大。

逐步总结的过程中,发现让开发人员写起来感觉舒服的代码,大概率是因为当前模块与其他模块代码耦合度低,开发人员无需花费过多的精力去关注其他模块的实现,只需要专注于当前自己的功能实现即可。

而通过实地对多个项目代码设计的对比,发现都有一个非常通用的设计模式,后面再通过阅读一些经验分享文章中,发现大部分后台项目也都运用这个模式,充分实现了模块之间的解耦,极大提高了开发人员的幸福感,这个通用的设计模式便是:发布订阅模式(游戏后台通常也叫事件监听模式 or 事件分发模式)。

一、什么是发布订阅(事件监听)设计模式

发布订阅模式是一个简单通用的模式,一般来说会专门实现一个类如LogicEventDispatch的类来负责维护发布者与订阅者之间关系,也就是下图红框的位置。

发布者有事件需要抛出时,只需要把事件传给LogicEventDispatch,再由LogicEventDispatch去调用各个订阅者的OnEventUpdate函数。以此来完成一次事件的发布与通知的整个流程。

此处参考:观察者模式与订阅发布模式的区别 - 一像素 - 博客园

发布订阅模式

上面这种实现只是一种通用实现之一。为何发布订阅模式可以充分解耦模块之间的耦合呢?

http://www.lryc.cn/news/256990.html

相关文章:

  • Kubernetes - 为什么 K8S 在容器里不能调用自己?
  • 电机:有刷直流电机的原理
  • 小黑子——springBoot基础
  • Flink流批一体计算(24):Flink SQL之mysql维表实时关联
  • 鸿蒙(HarmonyOS)应用开发——从网络获取数据(题目答案)
  • 力扣:197. 上升的温度(Python3)
  • uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!
  • c#编码技巧(十五):新语法糖record深入分析
  • Java IO流(五)(字符集基础知识简介)
  • 周周爱学习之Redis重点总结
  • 免费的SEO外链发布工具,提升排名的利器
  • 腾讯字节常考的linux命令
  • JAVA后端自学技能实操合集
  • C++ 关联容器
  • ES6之函数新增的扩展
  • postgresql安装部署(docker版本)
  • 【Python/Java/C++三种语言】20天拿下华为OD笔试之【位运算】2023B-出错的或电路【欧弟算法】全网注释最详细分类最全的华为OD真题
  • vscode 编译运行c++ 记录
  • 错题总结(四)
  • ORACLE使用Mybatis-plus批量插入
  • vue,uniapp的pdf等文件在线预览
  • SpringBoot 项目 Jar 包加密,防止反编译
  • DockerFile中途执行出错的解决办法
  • Word插件-好用的插件-一键设置字体--大珩助手
  • 【MODBUS】Modbus主站云端服务器和边缘设备部署区别
  • hbuiler中使用npm安装datav
  • 贾佳亚团队新作LLaMA-VID,2token让大模型学会看好莱坞大片
  • 【数据结构】手撕排序
  • 运维05:自动化
  • OpenCL学习笔记(一)开发环境搭建(win10+vs2019)