您喜欢这两种编程风格中的哪一种?为什么?一个相对于另一个有特别的优势吗?
// 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,那么遥远的将来的开发人员可能会调用它,并且如果采用第二种样式,他们可能会想知道为什么边框没有得到尽管调用了doTheBorder()
,但还是完成了。当然,有时某些情况,限制或限制可能会决定使用第二种样式,但我会尽可能避免使用。