实战经验:时刻关注类对象内部数据成员状态( 二 )
修改后的代码
以上修改后的类定义 , 在各个方法实现上 , 添加了对类内部数据成员m_hThread的状态判定:
1) 类构造函数首先在类对象实例化时 , 立即对类的内部数据成员做初始化 , 并将合理的初始值设置到数据成员 。
2) Init实现上 , 首先检查数据成员 , 仅当数据成员符合一定的逻辑条件时才做出动作 , 否则提示系统内部逻辑错误 。
3) Destroy实现同Init , 在确保数据成员有效的情况下才继续做下一步动作 , 并且 , 在动作执行完毕后 , 立即将数据成员重置为初始值NULL 。
4) 类析构函数也在具体的资源释放动作进行之前 , 对类的数据成员做了一次判定 , 如果之前Destroy调用成功 , 则此处的m_hThread为空 , 就避免了对句柄做出重复的CloseHandle调用 。
总结
有时候 , 我们在编写小程序时 , 往往会贪图简单 , 将类的数据成员的逻辑状态的合理检测给省略掉了 , 因为此时程序还小 , 我们可以一眼就看出错误出在哪里 。 但随着系统内部逻辑越来越复杂 , 程序规模越来越大 , 我们就很难追踪程序内部的逻辑混乱导致的崩溃问题 。
推荐阅读
- 梦幻西游|梦幻西游:千亿经验奖励5连击!长久地坚持在此刻能否收获幸运?
- edg战队|我绝不会离开EDG!Scout曾主动要求来中国,在最难的时刻坚持留队
- 手机游戏|梦幻西游手游:如何保证贸易少亏甚至小赚 小号、经验环必不可少
- 我的世界|我的世界:“最奢侈”的附魔是什么?我给胡萝卜钓竿打上经验修补
- jcg|影之诗:JCG的亚军人偶造物 实战六十盘感想
- 盲僧|LOL手游盲僧是英雄代表?灵药再推进阶教学,双区王者的经验
- 传奇世界|传奇世界:获声望的几种途径经验
- 大话西游2|大话西游2:一头年兽6千万经验,玩家怒刷3小时,疯狂上电视!
- 剑魂|DNF:如何短时间打出更好伤害?剑魂干货来了,实战主流装备搭配
- 戒指|梦幻西游:10张玲珑图全程无经验,宝石还只出了一个!