程序中for和splice同時使用與面向?qū)ο蠓庋b思想碰撞導(dǎo)致剔除殘留問題bug
?splice是一個指定位置刪除數(shù)組的函數(shù)
有一個封裝不可見的函數(shù),其中包含了對數(shù)組操作的邏輯,而現(xiàn)在要做的事情就是for去應(yīng)用閉包去實現(xiàn)刪除一個可遍歷對象逐個元素。
過程是不可見的所以開發(fā)者不容易理解其中bug產(chǎn)生的剔除殘留問題,所以此時封裝思想顯現(xiàn)出了其優(yōu)勢背后的弊端,如果遇到一個奇怪的遍歷出錯總是殘留的bug,那么就要考慮是否有splice出現(xiàn)了
事情是這樣的,我昨天的背包系統(tǒng)重構(gòu)基本完工了就差最后一個穿上衣服的時候玩家可以互相看見場景中即時更新的功能,這時候就需要客戶端場景類加一個協(xié)議處理服務(wù)器發(fā)來的脫衣服穿衣服消息了,我用了一個更方便的方式那就是玩家在切換衣服的時候直接先把目前穿的衣服全部脫掉然后穿上傳來的number[]數(shù)組,而在脫掉的程序中就出現(xiàn)了splice函數(shù)的應(yīng)用但是這片區(qū)域的代碼是之前寫的已經(jīng)忘記了封裝的什么內(nèi)容了,所以我就直接拿來用,這時候符合閉包封裝特性,獲得的閉包利益但是這也正是其導(dǎo)致這個bug出現(xiàn)的原因。
解決方法很多很簡單不列舉
讓面向?qū)ο蠓庋b的優(yōu)勢變成劣勢,程序?qū)嵲谑翘婷盍藒

標簽: