为布尔方法命名
来源:互联网 发布:彩票数据分析软件 编辑:程序博客网 时间:2024/05/17 04:10
概念:本文中的”为布尔方法命名”是指如果一个方法带有大量的bool 参数时,可以根据bool 参数的数量,提取出若干个独立的方法来简化参数。
正文:我们现在要说的重构并不是普通字面意义上的重构,它有很多值得讨论的地方。当一个方法带有大量的bool 参数时,会导致方法很容易被误解并产生非预期的行为,
根据布尔型参数的数量,我们可以决定提取出若干个独立的方法来。具体代码如下:
using LosTechies.DaysOfRefactoring.BreakResponsibilities.After;namespace LosTechies.DaysOfRefactoring.SampleCode.RenameBooleanMethod.Before{ public class BankAccount { public void CreateAccount(Customer customer, bool withChecking, bool withSavings, bool withStocks) { // do work } }}
我们可以将上面的bool参数以独立方法的形式暴露给调用端以提高代码的可读性,同时我们还需要将原来的方法改为private以限制其可访问性。显然我们关于要
提取的独立方法会有一个很大的排列组合,这是一大缺点,所以我们可以考虑引入”参数对象“重构。
using LosTechies.DaysOfRefactoring.BreakResponsibilities.After;namespace LosTechies.DaysOfRefactoring.SampleCode.RenameBooleanMethod.After{ 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 } }}
总结: ”为布尔方法命名“这个重构在很多时候都不常用,如果用户的参数可枚举,我们一般会枚举它的值,不过使用这种重构也有好处,就是分解开来以后,方法多了,参数少了,代码维护起来方便了一些。
0 0
- 为布尔方法命名
- 31天重构学习笔记28. 为布尔方法命名
- hibernate实体属性为布尔类型时命名应注意的地方
- & | 布尔
- 初始化bool(布尔)数组为false
- 命名方法
- 命名方法
- 命名方法
- JavaBean布尔变量的命令方法
- Java中的布尔返回值方法
- javascript布尔类型boolean对象方法
- compareTo方法——比较布尔值
- 为servlet命名
- 使用BeanUtils.populate方法转化Map为Javabean时get与set方法的命名规则
- 字符串未被识别为有效的布尔值
- 判断字符串是否为布尔型、浮点型、整型...
- 返回值为布尔型引起歧义的面试题
- 字符串"true"转换为布尔型boolean「true」
- 去除中间人对象
- poj 3349 Snowflake Snow Snowflakes
- objective-c 注释用法
- leetcode 89:Gray Code
- [Win32] 注册表操作(2)枚举注册表
- 为布尔方法命名
- UVa 11286 - Conformity
- [Android]使用draw9patch制作可拉伸图片
- 7月21日---关键字、抽象方法、抽象类、接口、多态及总结、设计模式
- [iOS]获取iOS UI框架中最上层的UIViewController对象
- 黑马程序员_C语言基础_关键字、printf函数、scanf函数
- 数据库分库分表方案
- javascript 对象创建,操作
- 避免双重否定