您喜欢这两种编程风格中的哪一种?为什么?一个相对于另一个有特别的优势吗?

// 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(),但还是完成了。当然,有时某些情况,限制或限制可能会决定使用第二种样式,但我会尽可能避免使用。

10-05 18:50