【问题标题】:Coding style, variable name编码风格、变量名
【发布时间】:2011-02-20 03:40:56
【问题描述】:

我有一个方法,例如getSome(String param, boolean active)。当我调用这个方法时,我会创建一个变量,如下所示。

boolean active = true;

getFoo("some", active);     // To get active foo

getFoo("some", !active);     // To get inactive foo

值得创建一个额外的变量还是直接调用getFoo("some", true);

【问题讨论】:

    标签: language-agnostic variables coding-style


    【解决方案1】:

    如果您有一个布尔参数,您应该考虑使用该函数的两个变体。在参数中有一个布尔值并不能帮助用户阅读代码。为了避免重复,实际的实现可能包含一个带有布尔参数的函数,但它可以对 API 的用户隐藏。

    getSomeActive("foo")
    getSomePassive("foo")
    

    另一种选择是两个使用有意义的标志,例如枚举而不是布尔值。

    getSome("foo", FetchStyle.ACTIVE)
    getSome("foo", FetchStyle.PASSIVE)
    

    回答你的问题:为了清楚起见,必须声明一个额外的变量只是告诉我们接口有问题。如果您无法更改接口或包装它,那么变量是记录意图的一种方式。不幸的是,其他人可能会在以后重构代码并删除变量。

    参考:Tip #12 in Clean Code Bob 大叔

    【讨论】:

      【解决方案2】:

      这取决于,当其他人阅读您的代码时,他们是否会想“为什么他/她把 true 放在那里?”。如果把 true 放在那里的原因很明显,那么你应该把 true 放在那里,否则,创建一个具有描述性名称的变量,以便他们弄清楚。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-29
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多