当您需要对某个对象执行多种方法时,您更喜欢哪种解决方案?
代码应该说明一切:
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
答案 0 :(得分:1)
我认为这取决于您希望调用这些方法的次数。他们会经常在一起或只在这里召集一次吗?如果它只是一次我采用2线方法,因为它不会在回报中不必要地传递self
。如果它经常发生,那么再制作一个连续调用它们的方法。
答案 1 :(得分:0)
这是一种权衡。答案取决于(1)重要性和(2)周围代码的复杂性。作为程序员,您必须做出决定。管道形式更短,节省垂直空间。稀疏形式更容易调试。根据您选择方法关键字的方式,内联表单可能看起来像人类句子,但在其他情况下,稀疏表单可能更易于阅读。如果您的方法处于繁重的开发阶段,请使用稀疏的写作方式。对于稳定的代码,管道形式是O.K.对于不太重要的代码,例如测试,我喜欢使用管道形式。实际上,我非常喜欢它,甚至省略了点,所以我的FizzBuzz程序看起来像这样,使用我的自定义库,允许密集的无点单字符方法双层管道:
(1..100).τᴍ⁒i⁇χ( 3, 0, "fizz", nil ).πᴍ⁒i⁇χ( 5, 0, "buzz", nil ).πγZᴍjτ
所以请记住,一线管道什么都没有,像上面那样的程序就是他们在Ruby中说“非常糟糕的风格”的意思:)))