代码的复用和重复的代码之间有什么区别

代码的复用和重复的代码之间有什么区别,为什么一方面要提高代码的复用,另一方面又要避免代码的重复,很纠结.*

举一个日常工作中经常用到的工具类中的方法,这是一段Java代码。
public class TestUse {
public static String convertToNull(String str) {
if (str.length() == 0) {
return null;
}
return str;
}
}
convertToNull方法用来判断一个未知的字符串实例是否可以转换为null。此时的规则是(规则一):如果这个字符串是空字符串("")或者是null,那么都认为这个字符串是可以转化成null。然后你在工作的其他地方不断使用该方法。那么这个方法的重用性就很高。
假如str1就是我们需要判断的字符串,其实你在每一个调用convertToNull方法的地方都可以这么写:
if (str1.length() == 0) {
str1 = null;
}
这叫做在很多地方有重复的代码。
那么问题来了,假如有一天规则变了,变成如下的要求(规则二):“只有字符串实例为null或空字符串或以‘a’开头才认为字符串可以转化为空”(这里只是举例,并无实际意义)。此时如果你使用的是convertToNull方法,只需要修改这个方法里的代码,变成如下的形式,而其他地方无需修改:
if (str.length() == 0 || str.startsWith("a")) {
return null;
}
return str;
但是如果你在需要按照规则一转化字符串为null的地方都直接写成:
if (str1.length() == 0) {
str1 = null;
}
那可想而知,你需要找到这些地方一个一个地修改,并且还要保证没有遗漏的地方。

由此可见重用和重复的一个很重要的区别:重复的代码显得啰嗦并且难以维护,而提高代码的重用则让代码显得更简洁,并且方便日后代码的维护。一般情况下提高代码的重用性需要把一段在多个地方都用到的代码封装成一个方法,在其他地方只需要调用该方法就可以了。

重复就是多次写一样的代码。
复用就是一段代码在多个地方调用。
比如

 public int calA(){
   实现某个功能
 }
 在多个地方通过calA调用的方式,则是复用。如果在调用calA的地方,每次都重写一遍calA中的代码,就是重复了。
 重复的代码不易于维护,容易出错,而且很糟糕。

代码的复用,是指将相同的功能的代码进行封装;这样,可以避免代码的重复!

 代码复用就是将公共代码抽取成模块如类,或者公共方法,以便其他需要用的地方可以直接调用。
重复的代码,是不同的模块中有相同或者类似的代码片段,如果有这种情况的话,就可以考虑抽取成公共模块,以便复用了。
你给出的问题一点都不纠结,因为重复的代码超过2到3个地方的话,就要考虑提取成公共模块,以便复用了。

代码复用就是同样的代码在不同的项目中重复使用。
代码重复就是相同或者类似的代码在一个项目中重复。
代码重复是不好的,因为这意味着你用多个代码描述相同的事情,一旦你尝试修改,就需要同时修改多个地方,一旦遗忘就麻烦了。

代码的复用就是解决重复代码问题的。

多谢各位的解答!!!