最佳实践:验证方法调用的条件?

Tal*_*ode 2 c# c++

我想在几乎每个程序中,有时候方法不需要一直调用,只能在特定条件下调用.检查是否必须调用方法非常容易.一个简单的if-statment可以解决问题.

if (value == true)
{
    DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您有许多条件,验证可能会变得复杂,代码会变得越来越长.所以我用每次调用的方法编写代码,方法本身将检查并验证她的代码是否需要执行.

DoSomething(value);
Run Code Online (Sandbox Code Playgroud)

... 然后 ...

public void DoSomething(bool value)
{
    if (value == true)
    {
    // Do Something here ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我有两种做事方式.我不确定哪种方式是正确的.或者甚至还有另一种选择?

Mar*_*ulz 5

清洁代码 - 敏捷软件手册技巧促进不要编写接受单个布尔参数的方法,因为每个方法应该只做一件事和一件事.如果一个方法接受一个布尔值参数来决定做什么,它会自动做了两两件事:决定什么该做,实际上做的事情.该方法应该重构为两个单独的方法做某事,一个方法决定调用两个方法中的哪一个.

此外,使用布尔值进行评估value == true是多余且不必要的.值本身表示布尔状态(true/ false),不需要true再次进行比较.也就是说,最佳做法是使用 if (value) 而不是 if (value == true)(或者if ((value == true) == true;这似乎是愚蠢的,但与方法没有太大区别if (value == true)).