重构-改善既有代码的设计-简化函数调用
简化函数调用相关重构手法
1.rename method(函数改名)(函数名称未能揭示函数的用途。修改函数名称)
2.add parameter(添加参数)(为此函数添加一个对象参数,让该对象带进函数所需信息)
3.remove parameter (移除参数)(函数本体不再需要某个参数。将该参数移去)
4.separate query from modifier(把查询函数和修改函数分离。某个函数返回对象状态值,又修改了对象状态。建立2个不同的函数,其中一个负责查询,另一个负责修改)
5.parameter method(令函数携带参数)(若几个函数做了类似的工作,但是函数本体却包含了不同的值。建立一个单一函数,以参数表达那些不同的值)
6.replace parameter with explicit methods(以明确函数取代参数)(你有一个函数,其中完全取决于参数值而采取不同行为。针对参数的每一个可能值,建立一个独立的函数)
7.preserve whole object(保持对象完整)(你从某个对象中取出若干值,将他们作为某次函数调用的参数。改为传递整个对象)
8.replace parameter with methods(以函数取代参数)(对象调用某个函数,并将所取得结果作为参数,传递给另一个函数,而接受该参数的函数本身也能够调用前一个函数。让参数接受者去除该项参数,并且直接调用前一个函数)
9.introduce parameter object(引入参数对象)(某些参数总是很自然地同时出现。以一个对象取代这些参数)
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(测试取代异常)(面对一个调用者可以预先检查的条件,你跑出了一个异常。修改调用者,使她在调用前先做个检查)