您更喜欢这两种编程风格中的哪一种?为什么?一个比另一个有什么特别的优势吗?
// Style 1
if (doBorder)
doTheBorder();
if (doFrame)
doTheFrame();
if (doDraw)
doTheDraw();
void doTheBorder()
{
// ...
}
void doTheFrame()
{
// ...
}
void doTheDraw()
{
// ...
}
// Style 2
doTheBorder();
doTheFrame();
doTheDraw();
void doTheBorder()
{
if (!doBorder)
return;
// ...
}
void doTheFrame()
{
if (!doFrame)
return;
// ...
}
void doTheDraw()
{
if (!doDraw)
return;
// ...
}
最佳答案
首先。第二个似乎是……缺乏信心。为什么打电话doTheBorder()
如果您甚至不知道是否要完成边界? IMO,你应该断言边境确实需要做,然后打电话doTheBorder()
有信心的!
...此外,从更技术的角度来看:如果 doTheBorder()
在一个封闭的 API 中,遥远的 future 的开发人员可能会调用它,如果使用第二种样式,他们可能想知道为什么边框没有完成,尽管他们调用了 doTheBorder()
.当然,有时某些情况或限制或限制可能会要求使用第二种样式,但我会尽可能避免使用它。
关于coding-style - 在函数内部或调用之前进行条件检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604546/