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


    详解本文中的”为布尔方法命名”是指如果一个方法带有大量的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     }

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

  • 相关阅读:
    关于分区索引与全局索引性能比较的示例
    演示DML操作导致位图索引锁定的简单示例
    show_spce存储过程的使用
    silverlight 滚动文字
    数据绑定
    silverlight 导航总结<二>待续
    Silverlight应用
    silverlight导航总结<一>应用传统的批改容器的Content或者是Child等内容来实现导航
    控件之布局控件
    silverlight 如何编辑控件模板?以制作圆形按钮为例
  • 原文地址:https://www.cnblogs.com/yplong/p/5381432.html
Copyright © 2020-2023  润新知