【重复代码】过多注释(Duplicate Code)--如何解决代码中重复代码?

过多注释(Comments)

●症状和特点

   两段代码看起来几乎相同。
在这里插入图片描述

●问题产生的原因

   代码重复通常发生在多个程序员同时处理同一个程序的不同部分时。由于他们正在处理不同的任务,他们可能没有意识到他们的同事已经编写了类似的代码,这些代码可以重新用于他们自己的需求。
   还有更微妙的重复,代码的特定部分看起来不同,但实际上执行相同的工作。这种复制很难发现和修复。
   有时复制是有目的的。当急于赶时间,而现有的代码“几乎适合”这项工作时,新手程序员可能无法抵抗复制和粘贴相关代码的诱惑。在某些情况下,程序员只是懒得整理。

●解决方法

●果在同一个类的两个或多个方法中发现了相同的代码:使用提取方法法并在两个地方调用新方法。
在这里插入图片描述

●如果在同一级别的两个子类中发现了相同的代码:
   ○对这两个类使用提取方法法,然后对正在提取的方法中使用的字段使用字段上移法
   ○如果重复代码在构造函数中,则使用构造函数本体上移法
   ○如果重复的代码相似但不完全相同,请使用塑造模板函数法
   ○如果两种方法做同样的事情,但使用不同的算法,选择最好的算法,并应用替換算法法

●如果在两个不同的类中发现重复的代码:
   ○如果类不是层次结构的一部分,则使用父类提取法为这些类创建一个维护前面所有功能的单一父类。
   ○如果很难或不可能创建超类,可以在一个类中使用:提炼类法,在另一个类中使用这个类。

●如果存在大量的条件表达式并执行相同的代码(只是条件不同),请使用合并条件表达式法将这些操作符合并为一个条件,并使用提取方法法将条件放在一个名称易于理解的单独方法中。

●如果在条件表达式的所有分支中执行相同的代码:合并重复的条件片段法将相同的代码放在条件树之外。
在这里插入图片描述

●好处

   在极少数情况下,合并两个相同的代码片段会使代码不那么直观和明显。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值