重构第28 天 重命名bool方法(Rename boolean method)
2024-08-26 23:08:04
详解:本文中的”为布尔方法命名”是指如果一个方法带有大量的bool 参数时,可以根据bool 参数的数量,提取出若干个独立的方法来简化参数。
理解:
我们现在要说的重构并不是普通字面意义上的重构,它有很多值得讨论的地方。当一个方法带有大量的bool 参数时,会导致方法很容易被误解并产生非预期的行为,
根据布尔型参数的数量,我们可以决定提取出若干个独立的方法来。具体代码如下:
public class BankAccount
{
public void CreateAccount(Customer customer, bool withChecking, bool withSavings, bool withStocks)
{
// do work
}
}
我们可以将上面的bool参数以独立方法的形式暴露给调用端以提高代码的可读性,同时我们还需要将原来的方法改为private以限制其可访问性。显然我们关于要提取的独立方法会有一个很大的排列组合,这是一大缺点,所以我们可以考虑引入”参数对象“重构。
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, bool withChecking, bool withSavings)
{
// do work
}
}
”为布尔方法命名“这个重构在很多时候都不常用,如果用户的参数可枚举,我们一般会枚举它的值,不过使用这种重构也有好处,就是分解开来以后,方法多了,参数少了,代码维护起来方便了一些。
最新文章
- hibernate多对多关联映射
- Hadoop学习笔记系列文章导航
- @Autowired 与@Resource的区别
- Python’s SQLAlchemy vs Other ORMs[转发 6]SQLAlchemy
- OpenCV Template Matching Subpixel Accuracy
- DOS批处理中%cd%和%~dp0的区别
- Python开源框架Scrapy安装及使用
- Linux操作系统以及各大发行版介绍——Linux operating system and major distribution is introduced
- html中window对象top 、self 、parent 等属性
- 初识eclipse及配置相关
- WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下?
- DedeCms密码解密[转]
- HDU2519:新生晚会
- python进阶(5):组合,继承
- 盒模型 bug 与触发 bfc
- 第9条:try-with-resources优于try-finally
- 微信小程序避坑指南
- Listener 快速开始
- asp.net core webapi 似乎未安装在 IIS 中承载 .NET Core 项目所需的 AspNetCoreModule。请尝试修复 Visual Studio 以纠正该问题。
- adb设置逍遥游
热门文章
- Scala 深入浅出实战经典 第55讲:Scala中Infix Type实战详解
- redmine v3.02版的安装问题
- AndroidStudio小技巧--依赖库
- fio terse输出详解
- RabbitMQ学习笔记3-使用topic交换器
- Mysql数据备份与恢复
- android 电量分析工具
- 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。
- notepad++插件
- Populating Next Right Pointers in Each Node II--leetcode难题讲解系列