代码之家  ›  专栏  ›  技术社区  ›  Ashwin Nanjappa

函数内部或调用之前的条件检查?

  •  4
  • Ashwin Nanjappa  · 技术社区  · 14 年前

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

    // 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;
      // ...
    }
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   FrustratedWithFormsDesigner    14 年前

    第一个。第二个似乎是。。。缺乏信心。为什么打电话 doTheBorder() 如果你甚至不知道你是否想完成边界?国际海事组织,你应该断言 真的需要 做,和 然后 呼叫 doTheBorder() 充满信心!

    …而且,从更技术的角度来看:如果 doTheBorder() 在一个封闭的API中,一个开发人员在遥远的将来可能会调用它,如果使用第二种样式,他们可能会想为什么边界没有完成,尽管他们调用了 doTheBorder() . 当然,有时某些情况、限制或限制可能会要求使用第二种样式,但我会尽可能避免使用。