28106830 你这确实算是解耦了,但是代码飞的哪里都是,已经没有"模块"的概念了.
你这样做确实解决了"耦合"的问题,但是代码可读性会非常差.实际操作起来对于整个开发进程没什么优势的.
我觉得耦合本身是处理两个不同模块的,其实这里的Buff没有单独运行的可能性,必须依附unit,这样的代码写好方法接口后,这个"耦合"很难说有必要去解耦.
其实还有个解决办法,就是新建个BattleHelper的静态类,这些unit当成参数传进来,这里去处理unit死亡逻辑,复活逻辑即可,不用定义那么多Event,这样可读性还会稍微强点.
猫大的本意可能是约束一些新手不要跨模块去循环依赖,这个例子中它们两个生命周期其实是个父子关系,循环依赖应该不需要过多在意的,有了这个检查器,让人迷惑了而已.