类过长——读不通,扩展不通
-
扩展不通——一个类有过多的接口,会让扩展这个类变得异常困难,一动千行
类过长——可能有冗余代码
此时CV工程师打了个冷战
冗余代码,就是重复代码,通常出自使用Ctrl+C,Ctrl+V来生产代码的CV工程师之手,冗余代码的危害非常大:
-
冗余代码使方法、类过长,不简洁
-
冗余代码会造成发散式修改(冗余代码需要变动时,每一处Ctrl+V都需要修改)
类过长——多半是职责过多
重构——抽取冗余代码
抽取冗余代码就是将重复代码抽取成一个独立的方法,之后再使用这段代码时就不再需要Ctrl + C,Ctrl + V,而是直接调用对应的方法即可
这样做也可以缩短原方法,使原方法更加简洁易懂
更值得一提的是如果这段代码需要修改,也只需修改一处,而不是发散式地到处修改
真是一箭三雕。推荐:Java面试练题宝典
使用IDEA进行冗余代码的抽取
1.找到重复代码
可以选择替换掉所有的重复代码(竟然有18处)
-
图中成员【偏A】被类【A】调用两次,而只被它所在的类【过长类】调用1次,因而应该转移给【A】去管理
-
由于函数【偏A】与成员【偏A】的亲密度较高(只调用了【偏A】),因而应与【偏A】共进退,同去留,转移给【A】
-
成员【偏B】和函数【偏B】也是相同道理
-
职责1(函数【1】和成员【偏职责1】)和职责2(函数【2】和成员【偏职责2】)由于找不到可转移的合适的类,所以应抽取出一个新的类
注意,先决定移动哪个成员变量,然后再决定移动哪个函数
使用IDEA转移成员变量和函数
1.移动成员变量,鼠标选择成员变量->右键->Refactor->Move,然后选择转移至哪个类
2.为新类起个名,选个包吧
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!