你也可以说这并不是一个真正的重构,因为方法实际上改变了,但这是一个灰色地带,可以开放讨论。一个拥有大量布尔类型参数的方法将很快变得无法控制,产生难以预期的行为。参数的数量将决定分解的方法的数量。来看看该重构是如何开始的:

public class BankAccount {public void CreateAccount(Customer customer, boolean withChecking, boolean withSavings, boolean withStocks) {    // do work     }}

要想使这样的代码运行得更好,我们可以通过命名良好的方法暴露布尔参数,并将原始方法更改为private
以阻止外部调用。显然,你可能需要进行大量的代码转移,也许重构为一个Parameter Object会更有意义。

public class BankAccount {public void CreateAccountWithChecking(Customer customer) {        CreateAccount(customer, true, false);

    }public void CreateAccountWithCheckingAndSavings(Customer customer) {        CreateAccount(customer, true, true);    }private void CreateAccount(Customer customer, Boolean withChecking, Boolean withSavings) {    // do work     }}

来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/jgig11/p/5786498.html

重构28-Rename boolean method(重命名布尔方法)相关推荐

  1. java file rename 失败_java重命名文件造成文件不可读写

    我想使用java代码对nginx日志文件进行拆分,但是我发现代码执行之后,拆分出来的日志文件没有读写权限,查看文件属性,显示的很诡异: 点击高级按钮,显示你没有权限查看或者编辑这个对象的权限设置: 反 ...

  2. Linux rename命令 批量重命名

    Linux rename命令 批量重命名 Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C ...

  3. pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)

    pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label) 目录

  4. linux 使用rename命令批量重命名文件

    linux 使用rename命令批量重命名文件 命令格式: Usage: rename [-v] [-n] [-f] perlexpr [filenames] 参数说明: v 显示文件重命名的细节 n ...

  5. buntu用rename命令批量重命名文件

    出处:Jelline Bloghttp://blog.chinaunix.net/uid-9112803-id-2377271.html 一.rename命令 摘要: 本文介绍rename命令完成重命 ...

  6. linux重命名的命令行操作,Linux rename命令批量重命名的方法

    Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,在Perl语言 ...

  7. rename python_谈谈重命名方法renames详解

    这篇文章主要介绍了python下os模块强大的重命名方法renames详解的相关资料,需要的朋友可以参考下python下os模块强大的重命名方法renames详解 在python中有很多强大的模块,其 ...

  8. linux下rename用法--批量重命名

    Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,在Perl语言大 ...

  9. .linux重命名文件命令,Linux rename命令文件重命名的用法汇总

    Linux命令中的rename命令主要用于给文件重命名,与mv命令有些类似,但rename可以对批量文件进行重命名,而mv命令则只能对单个文件重命名,下面就给大家详细介绍下Linux rename命令 ...

  10. 重构第28 天 重命名bool方法(Rename boolean method)

    详解:本文中的"为布尔方法命名"是指如果一个方法带有大量的bool 参数时,可以根据bool 参数的数量,提取出若干个独立的方法来简化参数. 理解: 我们现在要说的重构并不是普通字 ...

最新文章

  1. python画图哆啦a梦-Python—turtle画图(哆啦A梦)
  2. Java I/O系统学习系列一:File和RandomAccessFile
  3. 流水线可靠数据传输协议
  4. Jacobian 和Hessian矩阵
  5. Socket编程实践(2) --Socket编程导引
  6. I.MX6 查看baudrate确定是否被其他程序占用
  7. 有符号数与无符号数间的转换
  8. 2021年重庆市高考成绩查询时间复核,2021年重庆高考怎么查询是否被录取,具体录取时间安排...
  9. 三维空间下的交互设计
  10. Silverlight 5 强袭 !! 圣临王者之三端大一统
  11. Oracle归档模式与非归档模式设置
  12. Matlab: 汉字转拼音函数包
  13. 虚拟机配置(以Windowsxp系统为例)
  14. ARM学习(8) axf 工具解析
  15. 我们雇佣了一只大猴子...
  16. 华丽而实用的Java图表应用
  17. 错误1919配置ODBC数据源时发生错误Visio database samples,ODBC错误6:部件在注册
  18. B-S架构和C-S架构区别
  19. HTML实现可编辑下拉框
  20. 泰禾智能:智能改变未来,成就工业设备行业佼佼者

热门文章

  1. YUM安装部署LAMP环境
  2. 行尸走肉第八季/全集The Walking Dead迅雷下载
  3. 4种复制文件的方式性能比较
  4. 效果实现JS实现飞雪飘飘的效果
  5. div+css中的为什么要设置浮动属性,浮动完了为什么又要清除浮动
  6. 路由器与交换机组网性能的综合对比分析
  7. android开发完全退出activity
  8. [2018.07.12 T3] B君的第三题
  9. 对vue.config.js中的代理服务器的理解
  10. vue项目,路由跳转页面后滚动条自动回到顶部