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条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集