`
aaronjiu_00
  • 浏览: 67826 次
  • 性别: 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 ...

    重构 改善既有代码的设计

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

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

    1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示) InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_...

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

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

    vb成绩管理系统大实验代码及报告

    Visual Basic中的方法 ...其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。 (6) Visual Basic中的过程 (Procedure)过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。

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

    隐藏软键盘一直是我头痛的事情,没有找到一种真正能隐藏的方法。点击EditText的时候总是弹出软键盘。—–杯具 杯具(一): InputMethodManager im =(InputMethodManager) mEdit getContext() .getSystemService...

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

    10.11 Hide Method(隐藏你的函数) 10.12 Replace Co tructor with Factory Method(以工厂方法取代构造函数) 10.13 Encapsulate Downcast(封装「向下转型」动作) 10.14 Replace Error Code with Exception(以...

    Android 显示和隐藏输入法实现代码

    代码如下: // 隐藏输入法 InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); // 显示或者隐藏输入法 imm.toggleSoftInput(0, ...

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

    10.11 Hide Method(隐藏你的函数) 10.12 Replace Co tructor with Factory Method(以工厂方法取代构造函数) 10.13 Encapsulate Downcast(封装「向下转型」动作) 10.14 Replace Error Code with Exception(以...

    解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法

    ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);   2、//显示软...

    显示隐藏系统文件+扩展名 加入到右键

    "method"="ShellExecute" "Param1"="SuperHidden.vbs" "command"="显示/隐藏系统文件+扩展名" "CLSID"="{13709620-C279-11CE-A49E-444553540000}" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\...

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

    10.11 Hide Method(隐藏函数) 303 10.12 Replace Constructor with Factory Method(以工厂函数取代构造函数) 304 10.13 Encapsulate Downcast(封装向下转型) 308 10.14 Replace Error Code with ...

    重构:改善既有代码的设计.[美]Martin Fowler.epub【文字版手机格式】

    10.11 Hide Method(隐藏函数) 10.12 Replace Constructor with Factory Method(以工厂函数取代构造函数) 10.13 Encapsulate Downcast(封装向下转型) 10.14 Replace Error Code with Exception(以异常取代错误码)...

    Android代码-自动隐藏软键盘

    Modelled on the iOS implementation click on the input box area, soft keyboard hide, a super easy to use library of lightweight. Chinese Documents 点击查看中文文档 Gif Demo Download Demo Usage Step 1 ...

    [添加右键]【显示隐藏的系统文件+扩展名】添加到右键菜单(可卸载)

    "method"="ShellExecute" "Param1"="SuperHidden.vbs" "command"="显示/隐藏系统文件+扩展名" "CLSID"="{13709620-C279-11CE-A49E-444553540000}" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\...

    c#cs动画提示 像瑞星动画 默林动画动作大全

    默林现有动作 扬帆破浪 发表于2010年07月22日 20:30 阅读...Hide //隐藏,是method Think //思考,是method stop方法,stopall方法 moveto x,y,s//表示移动到何处去之后跟 横坐标,纵坐标,移动速度,都是数字变量。

Global site tag (gtag.js) - Google Analytics