1 、命名规范问题:需严格按 java 命名规范来,下图中 OrderBO 类名需改成 OrderBo 引用需定义成 orderBo 1、变量不要定义在循环体内理解:首先变量的声明是在栈中进行的,其中在外面的定义的变量,只在栈中声明了一次而在里面的定义的变量,循环多少次就在栈中声明了多少次。在内存或说资源节省方面来说肯定是在外面定义较好,这也是摧荐的写法,因为这样可以节省资源。另一方面,外面定义的变量还可以在循环体外引用。如下图: 修改方案: 将以上截图中标注的变量定义在 for 循环体外。 2、要避免对参数赋值:对参数赋值会导致其他地方引用改参数时数据与原始参数数据不一致。直接给参数赋值的影响: 如下图: 对比图: 我们项目中的例子: 修改方案: 3、不使用魔法数:所谓的魔法数是指在代码中直接出现的数值,只有在这个数值计数的那部分代码中才能明确了解其含义。如项目中: 修改方案: 4、 5、去除没有意义的代码:如下图中 for 循环体内可以去除元素对象是否为空的 6、能抽取出来的尽量抽取出来: 如下面截图中的方法重新给参数赋值这个操作我们可以抽取独立的方法。修改方案: (1) 抽取组装参数的方法: (2) 原方法调用组装参数的方法 8、逻辑复杂度不超过 8 :如果一个模块有 e 条边 e 个节点时它的圈复杂度为 v(G)=e-n+2 下面代码的逻辑复杂度已经达到 10 解决方案:提炼函数法(1) 提炼部分(2) 分解后 8、一次只做一件事情:下面方法做的事情太多了,我们需要给他瘦瘦身解决方案:把该方法中做能独立操作独立出来(1) (2) (3) (4) 抽取后 9、尽量不适用逻辑非: 其优点:可以及早结束非正常逻辑例子: (1 )重构前:
java代码重构 来自淘豆网m.daumloan.com转载请标明出处.