重构——47以明确函数取代参数(Replace Parameter with Explicit Methods)

简介: 以明确函数取代参数(Replace Parameter with Explicit Methods):你有一个函数,其中完全取决于参数值而采取不同的行为;针对该参数的每一个可用值,建立一个独立函数

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

你有一个函数,其中完全取决于参数值而采取不同的行为;针对该参数的每一个可用值,建立一个独立函数

一、动机

1、根据不同参数值作出不同的行为,那么就应该使用本项重构

2、接口更加清楚

二、做法

1、针对参数的每一种可能性,新建一个明确函数

2、修改表达式的每个分支,使其调用合适的新函数

3、修改每个分支后,编译并测试

4、修改原函数的每一个被调用点,改而调用上述的某个合适的新函数

5、编译,测试

6、所有调用端都修改完毕后,删除原函数

目录
相关文章
|
6月前
call()与apply()的作用与区别?
call()与apply()的作用与区别?
|
7月前
call()与apply()的作用与区别
call()与apply()的作用与区别
58 1
|
存储 设计模式 Go
Go 函数选项模式(Functional Options Pattern)
本文对 Go 函数选项模式(Functional Options Pattern)进行了详细介绍,并通过封装一个消息结构体的例子,展示了如何使用函数选项模式进行代码实现。
172 0
|
人工智能 Java
getParameter方法的用法
getParameter方法的用法
abap开发function module时使用tables传递参数报错过时的解决方法
如下图,我写了一个Function Module我要在tables中添加一个参数TABLES参数已过时不管怎么点击保存按钮,一直报错,怎么办呢?不管是不是过时,狂点回车,就保存了
1745 0
重构——49以函数取代参数(Replace Parameter with Methods)
以函数取代参数(Replace Parameter with Methods):对象调用某个参数,并将结果作为参数,传递给另一个函数,而接受该参数的函数本身也能够调用前一个函数;让参数接受者去除该项参数,并直接调用前一个参数
1732 0
重构——50引入参数对象(Introduce Parameter Object)
引入参数对象(Introduce Parameter Object):Range模式;某些参数总是很自然的同时出现;以一个对象取代这些参数
1774 0
重构——43添加参数(Add Parameter)
添加参数(Add Parameter):某个函数需要从调用端得到更多信息;为此函数添加一个对象,让该对象带进函数所需信息
1516 0
重构——32以State/Strategy取代类型码(Replace Type Code with State/Strategy)
以State/Strategy取代类型码(Replace Type Code with State/Strategy):你有一个类型码,它会影响到类的行为,但是你无法通过继承手法消除它;以状态对象取代类型码
1534 0