根据清洁代码法,我们希望功能只做一件事并处于相同的“抽象层次”。但是如何命名函数,其工作只是检查某些条件并在条件成立时执行工作。例如,如何命名此函数?
public void HowToNameThis(){
if(!ComponentIsInstalled()){
DisableCheckbox();
}
}
我想过将它命名为DisableCheckboxIfComponentIsNotInstalled,但是这个名称只是重复代码,这实际上意味着我创建了一个函数但没有创建任何抽象。
答案 0 :(得分:1)
我一般认为IF是否真的值得它自己的功能。 然后经常最终将其内联:
喜欢这个(伪):
void SetupInstallerWindow()
{
LoadLicenseAgreement();
if(!ComponentIsInstalled()){
DisableCheckbox();
}
BringWindowTop();
}
如果这真的变得混乱,那么一个名字的想法可能为读者提供更多的背景:
AllowReinstallationOfComponent()
答案 1 :(得分:1)
CleanCode还建议您在代码中保持积极态度。如果您反转方法中的逻辑,那么命名变得更容易。
public void TryEnableComponent() {
if(ComponentIsInstalled()) {
EnableCheckbox();
}
}