现在的位置: 首页 > 综合 > 正文

如何将原有代码转换为资源管理代码 ?

2014年02月09日 ⁄ 综合 ⁄ 共 703字 ⁄ 字号 评论关闭
 如何将原有代码转换为资源管理代码

     如果你是一个经验丰富的程序员,你一定会知道找资源的bug 是一件浪费时间的痛苦的经历。我不必说服你和你的团队花费一点时间来熟悉资源管理是十分值得的。你可以立即开始用这个方法,无论你是在开始一个新项目或者是在一个项目的中期。转换不必立即全部完成。下面是步骤。 

     首先,在你的工程中建立基本的Strong Pointer。然后通过查找代码中的new 来开始封装裸指针。 最先封装的是在过程中定义的临时指针。简单的将它们替换为auto_ptr并且删除相应的delete。如果一个指针在过程中没有被删除而是被返回,用 auto_ptr替换并在返回前调用release 方法。在你做第二次传递的时候,你需要处理对release 的调用。注意,即使是在这点,你的代码也可能更加"精力充沛"--你会移出代码中潜在的资源泄漏问题。 
     下面是指向资源的裸指针。确保它们被独立的封装到 auto_ptr中,或者在构造函数中分配在析构函数中释放。如果你有传递所有权的行为的话,需要调用release 方法。如果你有容器所有对象,用Strong Pointers重新实现它们。 
     接下来,找到所有对release的方法调用并且尽力清除所有,如果一个release 调用返回一个指针,将它修改传值返回一个auto_ptr。重复着一过程,直到最后所有new 和release 的调用都在构造函数或者资源转换的时候发生。这样,你在你的代码中处理了资源泄漏的问题。对其他资源进行相似的操作。 
      你会发现资源管理清除了许多错误和异常处理带来的复杂性。不仅仅你的代码会变得精力充沛,它也会变
得简单并容易维护。 

抱歉!评论已关闭.