延伸的大型类我有一个处理武器在我的游戏大抽象类。通过基本功能列表战斗循环:C#在赞成可读性
OnBeforeSwing
OnSwing
OnHit || OnMiss
我心里有被移动的所有战斗伤害相关的计算到处理只是另一个文件夹。与伤害相关的计算。
我想知道是否通过使OnHit
方法成为扩展方法来做到这一点是正确的,或者什么是最好的方法来实现这一点。
另外。周期性地有被修改的代码OnHit的部分,命中伤害公式大是因为它考虑到了大量的象电阻,变换咒语,项目奖金,特殊性能和其它的,类似的游戏元素的条件。
这结束了一个500行OnHit函数,哪种令我感到恐慌。即使有地区指令,也很难在迷宫中迷失方向,甚至分散注意力。
如果我用这个函数来扩展武器而不是仅仅具有OnHit函数,我可以尝试将攻击的不同部分分解为其他函数。
然后,也许我可以通过从武器类中的OnHit调用诸如CombatSystem.HandleWeaponHit
之类的东西,而不使用扩展方法。这可能更合适。
基本上我的问题是,如果离开它像真的是最好的解决方案,或者如果我可以(应该?)移动这部分代码到一个扩展方法或处理该损伤模型单独的辅助类,以及是否我应该尝试将这个功能分成更小的“任务”功能以提高可读性。
取决于命中的来源(咒语,武器),它的处理方式截然不同,我如何使用事件处理程序来反映我的代码? – bevacqua 2011-05-25 18:08:12