`
aaronjiu_00
  • 浏览: 69196 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hide Method(隐藏方法)

阅读更多

WHAT

隐藏方法是最简单、最基础的重构手法之一,当有一个public方法,没有被其他任何类用到,把这个public方法的访问修饰符改为private

 

本次重构涉及到一个基本的重构手法:

 

  1. Rename method,也即Change Method Signiture(更改方法签名,in Eclipse)

 

WHEN

  1. 当在另一个类中去除对这个public方法的调用时
  2. 过度设计,这个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’”

重构后的代码

 

package hide.method;

public class SomeClass {

}

   如果这个类没有继承关系,且没有其他方法了,这个类的寿命,就该终结了,你可以毫不犹豫地把它删除(Delete)了

  • 描述: 调用层次视图
  • 大小: 44.1 KB
  • 描述: 更改方法签名上下文菜单
  • 大小: 81.3 KB
  • 描述: 更改方法签名对话框
  • 大小: 107.3 KB
  • 描述: 打开调用层次上下文菜单
  • 大小: 71.8 KB
  • 描述: 删除方法使用快捷键Ctrl+1
  • 大小: 29.2 KB
  • 描述: 删除方法使用黄色警告小球
  • 大小: 23.4 KB
  • 描述: 删除方法使用鼠标悬浮
  • 大小: 31.5 KB
分享到:
评论
1 楼 steven0lisa 2012-09-10  
学习了。不过在有动态代码生成的项目中,就要谨慎用了。

相关推荐

    重构-改善既有代码的设计+中文版

     Hide Method 隐藏方法   Replace Constructor with Factory Method 用工厂方法代替构造器   Encapsulate Downcast 封装向下转型   Replace Error Code with Exception 用异常代替错误码   Replace ...

    重构——改善既有代码的设计

     Hide Method 隐藏方法   Replace Constructor with Factory Method 用工厂方法代替构造器   Encapsulate Downcast 封装向下转型   Replace Error Code with Exception 用异常代替错误码   Replace ...

    重构-改善既有代码的设计(中文版)

     Hide Method 隐藏方法   Replace Constructor with Factory Method 用工厂方法代替构造器   Encapsulate Downcast 封装向下转型   Replace Error Code with Exception 用异常代替错误码   Replace ...

    重构,改善既有代码的设计

     Hide Method 隐藏方法   Replace Constructor with Factory Method 用工厂方法代替构造器   Encapsulate Downcast 封装向下转型   Replace Error Code with Exception 用异常代替错误码   Replace ...

    重构 改善既有代码的设计

     Hide Method 隐藏方法   Replace Constructor with Factory Method 用工厂方法代替构造器   Encapsulate Downcast 封装向下转型   Replace Error Code with Exception 用异常代替错误码   Replace ...

    Android-KeyHide隐藏Android键盘的简单方法

    2. **调用隐藏键盘的方法**:在需要隐藏键盘的地方,例如点击某个按钮时,你可以调用KeyHide提供的静态方法,如`KeyHide.hideKeyboard(Activity activity)`。这个方法接收一个Activity实例,表示当前有键盘显示的上...

    android 隐藏api jar包,api 30

    使用`Class`, `Method`, `Constructor`等类,开发者可以调用隐藏API的私有方法或访问私有字段。 5. **权限管理**: 访问某些隐藏API可能需要特殊的系统权限。在Android 10及更高版本,系统加强了对权限的管理,...

    Android提高之探秘蓝牙隐藏API

    Method[] hideMethod = clsShow.getMethods(); for (int i = 0; i < hideMethod.length; i++) { Log.e("method name", hideMethod[i].getName()); } // 获取所有常量 Field[] allFields = clsShow.getFields...

    Android 显示和隐藏软键盘的方法(手动)

    这个方法会检查输入法是否正在显示,如果显示则隐藏,反之则显示: ```java imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); ``` 这里的参数`0`表示默认行为,`InputMethodManager.HIDE_NOT_ALWAYS`...

    隐藏输入法

    这里传入的参数 `0` 表示默认的隐藏方式,也可以传入其他参数来控制隐藏的方式,例如 `InputMethodManager.HIDE_NOT_ALWAYS` 或 `InputMethodManager.HIDE_IMPLICIT_ONLY`。 #### 三、完整代码示例 为了更好地理解...

    android 软键盘的隐藏域显示

    软键盘的自动弹出和收起有时会干扰用户界面的布局,因此开发者需要掌握如何控制软键盘的显示与隐藏。以下是从给定的代码片段中提炼出的关键知识点: ### 1. 控制软键盘的基本方法 #### 1.1 显示软键盘 ```java ...

    隐藏软键盘

    在【压缩包子文件的文件名称列表】:HideSoftKeyboard中,可能包含了一个示例项目或者代码片段,演示了如何在实际应用中实现这些隐藏软键盘的方法。通过查看和学习这个项目,开发者可以更好地理解和掌握如何在自己的...

    Android提高之蓝牙隐藏API探秘

    Method[] hideMethod = clsShow.getMethods(); for (Method method : hideMethod) { Log.e("method name", method.getName()); } // 获取所有常量 Field[] allFields = clsShow.getFields(); for (Field ...

    Android开发之完全隐藏软键盘的方法

    这里的`hideSoftInputFromWindow()`方法用于隐藏当前窗口的软键盘,`HIDE_NOT_ALWAYS`参数表示如果用户正在输入,键盘不会立即隐藏,而是等待一段时间后自动隐藏。这种方法在某些情况下可能无法立即隐藏键盘,特别是...

    ASP.NET Gridview隐藏/显示列源码

    文章将会演示两种显示和隐藏GridView列的方法,一种是客户端的方法,另外一种是服务段的方法. 在客户段显示和隐藏GridView的列 大部分代码是在GridView的RowCreated事件生成客户端的功能的。当GridView的Header行...

    Android中系统默认输入法设置的方法(输入法的显示和隐藏)

    在Android开发中,系统默认输入法的设置与管理是应用程序...通过以上方法,开发者可以灵活地控制Android应用中的输入法显示、隐藏以及其默认状态,提升用户体验。在实际开发中,可以根据具体需求选择合适的方法来实现。

    Android实现手机游戏隐藏虚拟按键

    `SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION`和`SYSTEM_UI_FLAG_HIDE_NAVIGATION`用于隐藏导航栏,`SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN`和`SYSTEM_UI_FLAG_FULLSCREEN`则用于隐藏状态栏。对于Android 4.4(KitKat)及...

    Android项目源码-调用Android中的软键盘.doc

    在给定的文档中,通过`InputMethodManager`的`toggleSoftInput`方法实现了在特定情况下自动弹出或隐藏软键盘。 首先,我们来详细了解一下`InputMethodManager`类。`InputMethodManager`是Android SDK中的一个系统...

    Android Dialog中软键盘的显示与隐藏的示例

    这个方法会根据当前软键盘的状态进行切换,如果已经显示则隐藏,反之则显示。代码如下: ```java InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_...

Global site tag (gtag.js) - Google Analytics