重构——49以函数取代参数(Replace Parameter with Methods)

简介: 以函数取代参数(Replace Parameter with Methods):对象调用某个参数,并将结果作为参数,传递给另一个函数,而接受该参数的函数本身也能够调用前一个函数;让参数接受者去除该项参数,并直接调用前一个参数

以函数取代参数(Replace Parameter with Methods)

对象调用某个参数,并将结果作为参数,传递给另一个函数,而接受该参数的函数本身也能够调用前一个函数;让参数接受者去除该项参数,并直接调用前一个参数

一、动机

如果函数可以通过其他途径获得参数值,那么它就不应该通过参数取得该值

二、做法

1、如果有必要,将参数的计算过程提炼到一个独立的函数中

2、将函数本体内引用该参数的地方改为调用新建的函数

3、每次替换后,编译并测试

4、全部替换完成后,使用Remove Parameter将该参数去除

目录
相关文章
|
人工智能 Java
getParameter方法的用法
getParameter方法的用法
重构——29以数据类取代记录(Replace Record with Data Class)
以数据类取代记录(Replace Record with Data Class):你需要面对传统编程环境中的记录结构;为该记录创建一个“哑”数据对象
1566 0
重构——47以明确函数取代参数(Replace Parameter with Explicit Methods)
以明确函数取代参数(Replace Parameter with Explicit Methods):你有一个函数,其中完全取决于参数值而采取不同的行为;针对该参数的每一个可用值,建立一个独立函数
1872 0
重构——50引入参数对象(Introduce Parameter Object)
引入参数对象(Introduce Parameter Object):Range模式;某些参数总是很自然的同时出现;以一个对象取代这些参数
1781 0
重构——43添加参数(Add Parameter)
添加参数(Add Parameter):某个函数需要从调用端得到更多信息;为此函数添加一个对象,让该对象带进函数所需信息
1520 0
重构——45将查询函数和修改函数分离(Separate Query from Modifier)
将查询函数和修改函数分离(Separate Query from Modifier):某个函数即返回对象状态,又修改对象状态;建立两个不同的函数,其中一个负责查询,另一个负责修改
1899 0
重构——31以子类取代类型码(Replace Type Code with SubClass)
以子类取代类型码(Replace Type Code with SubClass):你有一个不可变的类型码,它会影响类的行为;以子类取代这个类型码
1595 0
重构——44移除参数(Remove Parameter)
移除参数(Remove Parameter):函数本体不再需要某个函数;将该参数去除
1492 0
重构——19以对象取代数据值(Replace Data Value with Object)
以对象取代数据值(Replace Data Value with Object):你有一个数据项,需要与其他数据和行为一起使用才有意义;将数据项变为对象
1692 0