2

当您需要对一个对象执行多种方法时,您更喜欢哪种解决方案?

代码应该不言自明:

class Foo
  def self.build
    foo = new
    foo.first
    foo.second
    foo
  end

  def first
  end

  def second
  end
end

class Bar
  def self.build
    new.first.second
  end

  def first
    self
  end

  def second
    self
  end
end
4

2 回答 2

1

我认为这取决于您希望调用这些方法的次数。他们会经常被召集在一起还是只在这里一次?如果只是一次,我会使用 2-line 方法,因为它不会不必要地传递self返回值。如果它经常发生,那么制作另一种方法来连续调用它们。

于 2012-09-18T02:23:40.783 回答
0

这是一个权衡。答案取决于 (1) 重要性和 (2) 周围代码的复杂性。作为程序员,你是必须做出决定的人。管道形式更短,节省垂直空间。稀疏形式更容易调试。根据您选择方法关键字的方式,内联形式可能读起来像人类句子,但在其他情况下,稀疏形式可能更易于人类阅读。如果您的方法正在大量开发中,请使用稀疏的编写方式。对于稳定的代码,管道形式是可以的。对于不太重要的代码,例如测试,我喜欢使用管道形式。实际上,我非常喜欢它,甚至省略了点,所以我的FizzBu ​​zz 程序看起来像这样,使用我的自定义库,该库允许密集的无点单字符方法双管管道:

(1..100).τᴍ⁒i⁇χ( 3, 0, "fizz", nil ).πᴍ⁒i⁇χ( 5, 0, "buzz", nil ).πγZᴍjτ

所以请记住,一行管道什么都不是,像上面这样的程序是他们在 Ruby 中说“非常糟糕的风格”时的意思:)))

于 2012-09-18T04:37:26.887 回答