WHAT
隐藏方法是最简单、最基础的重构手法之一,当有一个public方法,没有被其他任何类用到,把这个public方法的访问修饰符改为private。
本次重构涉及到一个基本的重构手法:
- Rename method,也即Change Method Signiture(更改方法签名,in Eclipse)
WHEN
- 当在另一个类中去除对这个public方法的调用时
- 过度设计,这个public方法从来没有被其他任何类调用过
HOW
最初的代码
package hide.method;
public class SomeClass {
public void someMethod() {
// do something
}
}
重构步骤
- 重构之前,检查方法调用情况:选中该方法,使用快捷键(Ctrl + Alt + H)或者上下文菜单(Open Call Hierarchy ),检查该public方法的调用层次,如果该public方法有被其他类调用,就不能应用该重构
- 更改方法签名:选中该方法,使用快捷键(Alt + Shitf + C)或者上下文菜单(Refactor -> Change Method Signature ... ),弹出” Change Method Signature “对话框
在该对话框中,更改方法的Access modifier为“private”,点击”OK“按钮即可
这样,该public方法就变成private了,代码如下:
package hide.method;
public class SomeClass {
private void someMethod() {
// do something
}
}
- 至此,本次重构并未结束,因为未使用的private方法,没有任何存在价值
- 删除private方法,本次重构结束
- 方法一:鼠标悬浮在方法上面,在弹出的Quick Fix窗口中,点击“Remove method ‘someMethod’”
- 方法二:鼠标点击左侧的黄色警告 小球按钮, 在弹出的Quick Fix窗口中,点击“Remove method ‘someMethod’”,该窗口并有预览功能,这是一个不错的首选方法
- 方法三:使用快捷键(Ctrl + 1), 在弹出的Quick Fix窗口中,点击“Remove method ‘someMethod’”
- 方法一:鼠标悬浮在方法上面,在弹出的Quick Fix窗口中,点击“Remove method ‘someMethod’”
重构后的代码
package hide.method;
public class SomeClass {
}
如果这个类没有继承关系,且没有其他方法了,这个类的寿命,就该终结了,你可以毫不犹豫地把它删除(Delete)了