DennisYoY 2016-01-18 13:46 采纳率: 100%
浏览 3154
已采纳

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

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

  • 写回答

7条回答

  • _解牛_ 2016-01-18 14:33
    关注

    举一个日常工作中经常用到的工具类中的方法,这是一段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;
    }
    那可想而知,你需要找到这些地方一个一个地修改,并且还要保证没有遗漏的地方。

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥15 C# datagridview 栏位进度