软件设计重构秘笈28式-27为布尔方法命名

软件设计重构秘笈28式-27为布尔方法命名

概念

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

意图

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

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

案例

public class BankAccount {

    public void createAccount(Customer customer, boolean withChecking, boolean withSavings)
    {
        // do work
    }

}



重构

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

public class BankAccount {

    private void createAccount(Customer customer, boolean withChecking, boolean withSavings)
    {
        // do work
    }

    public void createAccountWithChecking(Customer customer)
    {
        createAccount(customer, true, false);
    }

    public void createAccountWithCheckingAndSavings(Customer customer)
    {
        createAccount(customer, true, true);
    }
}

总结

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

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值