重构条件-Consolidate Duplicate Conditional Fragments合并重复的条件片段三
创始人
2025-06-01 10:20:28

重构条件-Consolidate Duplicate Conditional Fragments合并重复的条件片段三

1.合并重复的条件片段

1.1.使用场景

在条件表达式的每个分支上有着相同的一段代码。将这段重复代码搬移到条件表达式之外。

有时你会发现,一组条件表达式的所有分支都执行了相同的某段代码。如果是这样,你就应该将这段代码搬移到条件表达式外面。这样,代码才能更清楚地表明哪些东西随条件的变化而变化、哪些东西保持不变。

1.2.如何做

  • 鉴别出“执行方式不随条件变化而变化”的代码。
  • 如果这些共通代码位于条件表达式起始处,就将它移到条件表达式之前。
  • 如果这些共通代码位于条件表达式尾端,就将它移到条件表达式之后。
  • 如果这些共通代码位于条件表达式中段,就需要观察共通代码之前或之后的代码是否改变了什么东西。如果的确有所改变,应该首先将共通代码向前或向后移动,移至条件表达式的起始处或尾端,再以前面所说的办法来处理。
  • 如果共通代码不止一条语句,应该首先使用Extract Method (110)将共通代码提炼到一个独立函数中,再以前面所说的办法来处理。

1.3.示例

你可能遇到这样的代码:

     if (isSpecialDeal()) {total = price * 0.95;send();}else {total = price * 0.98;send();}

由于条件表达式的两个分支都执行了send()函数,所以我应该将send()移到条件表达式的外围

     if (isSpecialDeal())total = price * 0.95;elsetotal = price * 0.98;send();

我们也可以使用同样的手法来对待异常。如果在try区段内可能引发异常的语句之后,以及所有catch区段之内,都重复执行了同一段代码,就可以将这段重复代码移到final区段。

相关内容

热门资讯

原创 埃... 埃及,这个横跨亚非两大洲的国度,地理位置的独特性让它在全球范围内有着重要的战略意义。这里的苏伊士运河...
翟军调研台儿庄古城春节旅游安全... 2月15日是春节假期首日,枣庄市委书记翟军到台儿庄古城调研旅游安全工作,并看望慰问消防救援指战员。市...
2026年旅行社包车服务商推荐... 随着旅游市场的深度复苏与消费需求的持续升级,旅行社包车服务已成为连接目的地资源与个性化旅行体验的关键...
九江观江指南:除了浔阳楼,这几... 九江观江指南:除了浔阳楼,这几个地方的长江视野更开阔壮美 来九江的游客,很多都想一睹长江的壮阔。大家...
林芝桃花节景区内交通全解答:观... 林芝桃花节景区内交通全解答:观光车、索道费用与选择指南 每年三月下旬到四月中旬,当西藏大部分地区还未...