如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!

类过长——读不通,扩展不通

  • 读不通——直接用滚轮滚都得好几秒,就算是原作者,时间长了恐怕也难以理清整个类,更不用说是其他的读者

  • 扩展不通——一个类有过多的接口,会让扩展这个类变得异常困难,一动千行

类过长——可能有冗余代码

此时CV工程师打了个冷战

冗余代码,就是重复代码,通常出自使用Ctrl+C,Ctrl+V来生产代码的CV工程师之手,冗余代码的危害非常大:

  1. 冗余代码使方法、类过长,不简洁

  2. 冗余代码会造成发散式修改(冗余代码需要变动时,每一处Ctrl+V都需要修改)

类过长——多半是职责过多

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!

重构——抽取冗余代码

抽取冗余代码就是将重复代码抽取成一个独立的方法,之后再使用这段代码时就不再需要Ctrl + C,Ctrl + V,而是直接调用对应的方法即可

这样做也可以缩短原方法,使原方法更加简洁易懂

更值得一提的是如果这段代码需要修改,也只需修改一处,而不是发散式地到处修改

真是一箭三雕。推荐:Java面试练题宝典

使用IDEA进行冗余代码的抽取

1.找到重复代码

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定! 如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!

可以选择替换掉所有的重复代码(竟然有18处)

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!
  1. 图中成员【偏A】被类【A】调用两次,而只被它所在的类【过长类】调用1次,因而应该转移给【A】去管理

  2. 由于函数【偏A】与成员【偏A】的亲密度较高(只调用了【偏A】),因而应与【偏A】共进退,同去留,转移给【A】

  3. 成员【偏B】和函数【偏B】也是相同道理

  4. 职责1(函数【1】和成员【偏职责1】)和职责2(函数【2】和成员【偏职责2】)由于找不到可转移的合适的类,所以应抽取出一个新的类

注意,先决定移动哪个成员变量,然后再决定移动哪个函数

使用IDEA转移成员变量和函数

1.移动成员变量,鼠标选择成员变量->右键->Refactor->Move,然后选择转移至哪个类

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!

2.为新类起个名,选个包吧

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!

来源:Java笔记虾

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月23日
下一篇 2021年2月23日

相关推荐