代码模块解耦终极武器--事件监听

本文介绍了在游戏开发中如何使用观察者模式来解决模块间的代码耦合问题。详细阐述了具体的设计逻辑,包括EventListenerIF接口用于模块管理类初始化和监听事件,ListenerAutowire注解用于游戏启动时自动扫描并初始化,ListenerEventType定义事件并存储监听者,以及ListenerManager作为事件管理类。通过这种方式,可以在各个模块中方便地管理和处理事件,提高代码的可维护性和解耦性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

在游戏开发的过程中,我们会分很多很多的模块。每个模块之间我们尽量的要做多这个模块的代码不要污染到其他模块的代码。

代码耦合弊端

  1. 不然你模块写了你的代码,我又在你的模块中增加了我的逻辑代码,那么这个时候模块出现bug了,你说是你的问题还是我的问题?
  2. 而且在思维逻辑上也不应该模块耦合太多,不然后面策划说要大改,这个时候明明不是你的模块的工作量,也会变成你也要去处理。
  3. 再者明明的一个模块的代码,应该要归集到同一个地方处理,这样后面别人看你代码就不用到处去各个模块中找你的代码逻辑了。

解决方案

那么模块之间的解耦和就很有必要。而我们学过的23中设计模式中,观察者模式就很符合我们需要的解决方案了。

观察者模式UML图如下:
在这里插入图片描述
如上图所示,观察者模式主要涉及到抽象主题角色、具体主题角色、抽象观察者角色、具体观察者角色等四种角色:

  1. 抽象主题(Subject)角色:主题角色把所有对观察者对象的引用保存在一个集合(比如 Vector对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又叫做抽象被观察者( Observable)角色,一般用一个抽象类或者一个接口实现。
  2. 具体主题(ConcreteSubjec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值