重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

重构的时机发生在平时,每次写代码对丑陋的地方进行一次重构。保证每次离开时代码比进入时更干净就好了,大规模的重构和重写永远不会有结果

不要用 bool 形参

整理自

原因有两个:

  • bool 形参会导致代码的可读性变差,比如在只看函数调用而不看函数签名的时候很难理解参数的含义。尽管使用 IDE 可以方便地查看函数的签名,但并不是所有场合都能会 IDE 的

  • 带有 bool 形参的函数违背的函数的单一职责。函数根据 bool 参数需要负责多个任务,违背了设计模式

优化方式:

  • 将职责分离,一个函数分离成多个函数即可

  • 使用枚举提高语义化

  • 使用解释性变量

嵌套 if-else 语句优化

整理自

对于 if-else 很多的嵌套代码块,可以通过以下方式优化:

  • 互斥条件表驱动

  • 嵌套条件校验链

  • 短路条件早返回

  • 零散条件可组合

而对于并列的 if-else,可以使用以下方式优化:

  • 字典映射

  • 表驱动

多参数函数优化

使用 do while 简化多分支语句

首先是简化防御式编程。例如将下述代码进行简化:

bool func(){
   bool bRet = false;
   int *pAssHole = new int;

   bRet = fuck1();
   if(!bRet){
      delete pAssHole;
      return bRet;
   }

   bRet = fuck2();
   if(!bRet){
      delete pAssHole;
      return bRet;
   }

   bRet = fuck3();
   if(!bRet){
      delete pAssHole;
      return bRet;
   }
}

简化为:

bool func(){
   bool bRet = false;
   int *pAssHole = new int;

   do{
      bRet = fuck1();
      if(!bRet)
         break;

      bRet = fuck2();
      if(!bRet)
         break;

      bRet = fuck3();
      if(!bRet)
         break;
   }while(0)

   delete pAssHole;
}
Last moify: 2024-12-23 07:55:59
Build time:2025-07-18 09:41:42
Powered By asphinx