IT科技

25种代码坏味道总结+优化示例

时间:2010-12-5 17:23:32  作者:系统运维   来源:IT科技  查看:  评论:0
内容摘要:前言什么样的代码是好代码呢?好的代码应该命名规范、可读性强、扩展性强、健壮性......而不好的代码又有哪些典型特征呢?这25种代码坏味道大家要注意啦1. Duplicated Code 重复代码)重

 前言

什么样的种代总结代码是好代码呢?好的代码应该命名规范、可读性强、码坏扩展性强、味道健壮性......而不好的优化代码又有哪些典型特征呢?这25种代码坏味道大家要注意啦

1. Duplicated Code (重复代码)

25种代码坏味道总结+优化示例

重复代码就是不同地点,有着相同的示例程序结构。一般是种代总结因为需求迭代比较快,开发小伙伴担心影响已有功能,码坏就复制粘贴造成的味道。重复代码很难维护的网站模板优化,如果你要修改其中一段的示例代码逻辑,就需要修改多次,种代总结很可能出现遗漏的码坏情况。

25种代码坏味道总结+优化示例

如何优化重复代码呢?味道分三种情况讨论:

25种代码坏味道总结+优化示例

同一个类的两个函数含有相同的表达式 

class A {       public void method1() {           doSomething1          doSomething2          doSomething3      }      public void method2() {           doSomething1          doSomething2          doSomething4      }  } 

优化手段:可以使用Extract Method(提取公共函数) 抽出重复的代码逻辑,组成一个公用的优化方法。 

class A {       public void method1() {           commonMethod();          doSomething3      }      public void method2() {           commonMethod();          doSomething4      }       public void commonMethod(){          doSomething1         doSomething2      }  } 

两个互为兄弟的示例子类内含相同的表达式 

class A extend C {       public void method1() {           doSomething1          doSomething2          doSomething3      }  }  class B extend C {       public void method1() {           doSomething1          doSomething2          doSomething4      }  } 

优化手段:对两个类都使用Extract Method(提取公共函数),然后把抽取出来的云服务器提供商函数放到父类中。 

class C {       public void commonMethod(){        doSomething1       doSomething2     }  }  class A extend C {       public void method1() {           commonMethod();          doSomething3      }  }  class B extend C {       public void method1() {           commonMethod();          doSomething4      }  } 

两个毫不相关的类出现重复代码

如果是两个毫不相关的类出现重复代码,可以使用Extract Class将重复代码提炼到一个类中。这个新类可以是一个普通类,也可以是一个工具类,看具体业务怎么划分吧。

2 .Long Method (长函数)

长函数是指一个函数方法几百行甚至上千行,可读性大大降低,不便于理解。反例如下: 

public class Test {       private String name;      private Vector<Order> orders = new Vector<Order>();      public void printOwing() {           //print banner          System.out.println("

亿华云计算
copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap