如果条件为真,我如何命名仅执行某些操作的函数

时间:2014-09-02 08:56:39

标签: coding-style

根据清洁代码法,我们希望功能只做一件事并处于相同的“抽象层次”。但是如何命名函数,其工作只是检查某些条件并在条件成立时执行工作。例如,如何命名此函数?

public void HowToNameThis(){
   if(!ComponentIsInstalled()){
      DisableCheckbox();
   }
}

我想过将它命名为DisableCheckboxIfComponentIsNotInstalled,但是这个名称只是重复代码,这实际上意味着我创建了一个函数但没有创建任何抽象。

2 个答案:

答案 0 :(得分:1)

我一般认为IF是否真的值得它自己的功能。 然后经常最终将其内联:

喜欢这个(伪):

void SetupInstallerWindow()
{
    LoadLicenseAgreement();

    if(!ComponentIsInstalled()){
        DisableCheckbox();
    }

    BringWindowTop();
}

如果这真的变得混乱,那么一个名字的想法可能为读者提供更多的背景:

AllowReinstallationOfComponent()

答案 1 :(得分:1)

CleanCode还建议您在代码中保持积极态度。如果您反转方法中的逻辑,那么命名变得更容易。

public void TryEnableComponent() {
    if(ComponentIsInstalled()) {
        EnableCheckbox();
    }
}