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

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

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

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

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

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

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

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

发布订阅模式

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 22:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 22:32:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 22:32:03       82 阅读
  4. Python语言-面向对象

    2023-12-10 22:32:03       91 阅读

热门阅读

  1. 数据管理系统-week12-数据库审计(Database Auditing)

    2023-12-10 22:32:03       53 阅读
  2. kubeadm搭建1.20.7版本k8s

    2023-12-10 22:32:03       50 阅读
  3. CT成像技术—20231205

    2023-12-10 22:32:03       39 阅读
  4. pip基本命令与使用

    2023-12-10 22:32:03       60 阅读
  5. 蓝桥杯 day01 奇怪的数列 特殊日期

    2023-12-10 22:32:03       52 阅读
  6. 信息处理技术员

    2023-12-10 22:32:03       57 阅读
  7. 汽车继电器

    2023-12-10 22:32:03       52 阅读
  8. 使用git出现的问题

    2023-12-10 22:32:03       57 阅读