简化函数调用相关重构手法ide
1.rename method(函数更名)(函数名称未能揭示函数的用途。修改函数名称)函数
2.add parameter(添加参数)(为此函数添加一个对象参数,让该对象带进函数所需信息)测试
3.remove parameter (移除参数)(函数本体再也不须要某个参数。将该参数移去)spa
4.separate query from modifier(把查询函数和修改函数分离。某个函数返回对象状态值,又修改了对象状态。创建2个不一样的函数,其中一个负责查询,另外一个负责修改)code
5.parameter method(令函数携带参数)(若几个函数作了相似的工做,可是函数本体却包含了不一样的值。创建一个单一函数,以参数表达那些不一样的值)对象
6.replace parameter with explicit methods(以明确函数取代参数)(你有一个函数,其中彻底取决于参数值而采起不一样行为。针对参数的每个可能值,创建一个独立的函数)ci
7.preserve whole object(保持对象完整)(你从某个对象中取出若干值,将他们做为某次函数调用的参数。改成传递整个对象)rem
8.replace parameter with methods(以函数取代参数)(对象调用某个函数,并将所取得结果做为参数,传递给另外一个函数,而接受该参数的函数自己也可以调用前一个函数。让参数接受者去除该项参数,而且直接调用前一个函数)it
9.introduce parameter object(引入参数对象)(某些参数老是很天然地同时出现。以一个对象取代这些参数)io
10.remove setting method(移除设置器)(类中某个变量在对象建立时被赋值,而后再也不改变。去掉字段的全部赋值函数)
11.hide method(隐藏函数)(有一个函数,历来没有被其余任何类用到。把这个函数修改成private)
12.replace constructor with factory method(以工厂函数取代构造函数)(你指望在建立对象时不单单作简单的构建工做。将构造函数替换为工厂函数)
13.encapsulate downcast(封装向下转型)(某个函数返回的额对象,须要由函数调用者执行向下转型。将向下转型动做移到函数中)
14.replace error code with exception (异常取代错误码)(某个函数返回一个特定的代码,用于表示某种错误状况。改用异常)
15.replace exception with test(测试取代异常)(面对一个调用者能够预先检查的条件,你跑出了一个异常。修改调用者,使她在调用前先作个检查)