欢迎光临散文网 会员登陆 & 注册

程序中for和splice同时使用与面向对象封装思想碰撞导致剔除残留问题bug

2022-02-17 11:58 作者:-千里马-  | 我要投稿

 splice是一个指定位置删除数组的函数

有一个封装不可见的函数,其中包含了对数组操作的逻辑,而现在要做的事情就是for去应用闭包去实现删除一个可遍历对象逐个元素。

过程是不可见的所以开发者不容易理解其中bug产生的剔除残留问题,所以此时封装思想显现出了其优势背后的弊端,如果遇到一个奇怪的遍历出错总是残留的bug,那么就要考虑是否有splice出现了

事情是这样的,我昨天的背包系统重构基本完工了就差最后一个穿上衣服的时候玩家可以互相看见场景中即时更新的功能,这时候就需要客户端场景类加一个协议处理服务器发来的脱衣服穿衣服消息了,我用了一个更方便的方式那就是玩家在切换衣服的时候直接先把目前穿的衣服全部脱掉然后穿上传来的number[]数组,而在脱掉的程序中就出现了splice函数的应用但是这片区域的代码是之前写的已经忘记了封装的什么内容了,所以我就直接拿来用,这时候符合闭包封装特性,获得的闭包利益但是这也正是其导致这个bug出现的原因。

解决方法很多很简单不列举

让面向对象封装的优势变成劣势,程序实在是太奇妙了~


程序中for和splice同时使用与面向对象封装思想碰撞导致剔除残留问题bug的评论 (共 条)

分享到微博请遵守国家法律