详解:本文中的”为布尔方法命名”是指如果一个方法带有大量的bool 参数时,可以根据bool 参数的数量,提取出若干个独立的方法来简化参数。

理解

我们现在要说的重构并不是普通字面意义上的重构,它有很多值得讨论的地方。当一个方法带有大量的bool 参数时,会导致方法很容易被误解并产生非预期的行为,

根据布尔型参数的数量,我们可以决定提取出若干个独立的方法来。具体代码如下:

1  public class BankAccount
2     {
3         public void CreateAccount(Customer customer, bool withChecking, bool withSavings, bool withStocks)
4         {
5             // do work
6         }
7     }

我们可以将上面的bool参数以独立方法的形式暴露给调用端以提高代码的可读性,同时我们还需要将原来的方法改为private以限制其可访问性。显然我们关于要提取的独立方法会有一个很大的排列组合,这是一大缺点,所以我们可以考虑引入”参数对象“重构。

 1  public class BankAccount
 2     {
 3         public void CreateAccountWithChecking(Customer customer)
 4         {
 5             CreateAccount(customer, true, false);
 6         }
 7
 8         public void CreateAccountWithCheckingAndSavings(Customer customer)
 9         {
10             CreateAccount(customer, true, true);
11         }
12
13         private void CreateAccount(Customer customer, bool withChecking, bool withSavings)
14         {
15             // do work
16         }
17     }

”为布尔方法命名“这个重构在很多时候都不常用,如果用户的参数可枚举,我们一般会枚举它的值,不过使用这种重构也有好处,就是分解开来以后,方法多了,参数少了,代码维护起来方便了一些。

重构第28 天 重命名bool方法(Rename boolean method)相关推荐

  1. python 重命名的方法_Python下OS模块重命名方法renames

    在python中有很多强大的模块,其中我们经常要使用的就是OS模块,OS模块提供了超过200个方法来供我们使用,并且这些方法都是和数据处理相关的,这里介绍下重命名这个方法. OS的重命名方法是os.r ...

  2. Mac OS 文件、文件夹重命名的方法

    在Mac OS中,文件和文件名重命名的方法非常简单 选中你想要命名的文件或者文件夹,按回车,可以直接重命名,输入你要修改的内容,确认后,再按回车就OK啦--- 希望能对你有所帮助^_^ 转载于:htt ...

  3. 文件随机重命名的方法

    文件重命名做为日常办公操作中最常用的方法,大家几乎都能用到,但文件重命名有多种发法,您不一定全都知道,今天就介绍大家一个随机重命名的方法. 在文件批量改名高手中将功能切换到"文件批量重命名& ...

  4. java重命名_java实现文件重命名的方法

    本文实例讲述了java实现文件重命名的方法.分享给大家供大家参考.具体如下: 下载的电影总是有一些存在网站名称等没用的信息 作为一个强迫症患者 一定要删除他们 package sys.file; im ...

  5. linux批量重命名脚本,Mac / Linux Shell 批量重命名的方法总览

    Linux Shell 批量重命名的方法总览 0.用类似 GPRename 这样的图形软件进行批量重命名 1.删除所有的 .bak 后缀: rename 's/\.bak$//' *.bak 2.把 ...

  6. ps怎么给图层(批量)重命名的方法

    ps教程中图层重命名包括为一个图层重命名和所有图层批量重命名.对PS感兴趣想学习交流的朋友可加PS学习交流群:142574315 使用photoshop制作一个文件,使用到10个20个图层完成的情况很 ...

  7. 计算机双击程序名字是否重命名,鼠标双击文件打不开或变成文件重命名解决方法...

    鼠标是操控电脑的基本设备,有时候在电脑上会出现双击文件打不开现象,或双击文件时变成文件重命名状态(如下图所示),如果这些故障问题时在触摸板和外接鼠标上同时出现的话,那么很有可能是系统对鼠标属性设置问题 ...

  8. rename重命名文件方法

    原文链接:http://blog.csdn.net/zhaoweixing1989/article/details/8954452 摘要: 本文介绍rename命令完成重命名批量文件语法,介绍了ren ...

  9. 批量重命名利器——Bulk Rename Utility

    批量重命名利器--Bulk Rename Utility 最近由于项目需要,要学习下Redis相关内容,上万能的B站扒拉了一下,发现宝藏男孩[狂神说Java]的课程还不错! 在线看多不爽,下载下来再说 ...

最新文章

  1. shell 中| || () {} 用法以及shell的逻辑与或非
  2. Mysql 数据库命令行导出导入sql脚本
  3. css3 卡片亮光_利用css3实现文字亮光特效的代码
  4. java导出excel_如何导出你和女票的微信聊天记录
  5. 使用MemberShip,Profile时碰上的一些问题
  6. .net框架读书笔记---通用对象操作(一)
  7. Ethereum-EIPs
  8. 前端小知识点(9):函数和对象之间的关系
  9. Semaphore 原理简介和使用
  10. 使用SQL Server 2017 Docker容器在.NET Core中进行本地Web API开发
  11. 2.2 理解 mini-batch 梯度下降法
  12. textarea中输入多个空格或者换行时只显示一个空格的解决办法
  13. hadoop namenode启动失败
  14. delphi7 调webservice时报错:fault occurred while processing
  15. r语言Isfit_应用统计学与R语言实现学习笔记(七)——拟合优度检验
  16. 新中大怎么修改服务器,新中大软件服务器地址修改
  17. Win10企业版激活方法
  18. 访问页面升级访问_BPC页面访问缓慢无报错
  19. 机器人操作系统入门(一)ROS简介
  20. android 换肤 视频,网易云音乐4.0版体验:自定义换肤和短视频来了

热门文章

  1. Day4--Scrapy基本使用
  2. 版本管理 - Git 使用入门
  3. openstack的网络、子网、端口的关系
  4. python使用选择结构鉴别合法日期
  5. cd、mkdir、rmdir、touch、rm命令,绝对路径与相对路径
  6. MySQL force Index 强制索引概述
  7. python终端中退格键,方向键不能使用
  8. LinkedIn工程经理眼中的数据世界格局
  9. zz为什么人人都该学点心理学
  10. JDK8新特性之Stream流