coding-style - 在函数内部或调用之前进行条件检查?

标签 coding-style

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

// 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/

相关文章:

Java:用 lambda 替换 switch。值得?

.net - 在大型 .NET 代码库中,评论真的被普遍认为是邪恶的吗?

javascript - 我怎样才能压缩这个 jQuery 代码?

Java 重构代码的味道

c++ - 微软 STL : Constant values always on the left in conditionals?

java - 在java中将本地对象传递给线程是不好的风格吗?

java - 是否有任何广泛使用的现代 Java 编码约定?

c# - 使用隐式类型的局部变量

java - switch 语句 vs if 语句,哪个对性能更好?

oop - 处理 "cancel button"的最佳 OO 方式