延伸的大型類我有一個處理武器在我的遊戲大抽象類。通過基本功能列表戰鬥循環:C#在贊成可讀性
OnBeforeSwing
OnSwing
OnHit || OnMiss
我心裏有被移動的所有戰鬥傷害相關的計算到處理只是另一個文件夾。與傷害相關的計算。
我想知道是否通過使OnHit
方法成爲擴展方法來做到這一點是正確的,或者什麼是最好的方法來實現這一點。
另外。週期性地有被修改的代碼OnHit的部分,命中傷害公式大是因爲它考慮到了大量的象電阻,變換咒語,項目獎金,特殊性能和其它的,類似的遊戲元素的條件。
這結束了一個500行OnHit函數,哪種令我感到恐慌。即使有地區指令,也很難在迷宮中迷失方向,甚至分散注意力。
如果我用這個函數來擴展武器而不是僅僅具有OnHit函數,我可以嘗試將攻擊的不同部分分解爲其他函數。
然後,也許我可以通過從武器類中的OnHit調用諸如CombatSystem.HandleWeaponHit
之類的東西,而不使用擴展方法。這可能更合適。
基本上我的問題是,如果離開它像真的是最好的解決方案,或者如果我可以(應該?)移動這部分代碼到一個擴展方法或處理該損傷模型單獨的輔助類,以及是否我應該嘗試將這個功能分成更小的「任務」功能以提高可讀性。
取決於命中的來源(咒語,武器),它的處理方式截然不同,我如何使用事件處理程序來反映我的代碼? – bevacqua 2011-05-25 18:08:12