
ScanComponent 为 公共组件,用于处理各种战斗实体的扫描逻辑,MagicalGirl_Devil_BattleComponent 为魔法少女的战斗组件,在其初始化的时候调用了 ScanComponent 的 AddScanNode 方法去添加扫描点,但是在 ScanComponent 中又需要调用 MagicalGirl_Devil_BattleComponent 中的方法处理逻辑,这样就形成了环形依赖,如下图旧逻辑。

这里 ScanComponent 不应该知道 MagicalGirl_Devil_BattleComponet 的存在,显然需要改成多态分发的结构,这样既符合代码规范又避免了环形依赖,之后添加新的类型也不需要在 ScanComponent 里增加 Switch 的判断的数量。



这样修改后就漂亮多了😋