我正在为正在为Ruby中使用的工具编写一些API的组中工作。编写API方法时,我的许多团队成员使用散列表作为方法的唯一参数,而我用指定的每个值编写我的方法。使用哈希表作为函数输入
例如,一个类苹果的定义为:
class Apple
@commonName
@volume
@color
end
我会实例化类方法:
Apple.new(commonName, volume, color)
我的队友们会写这样的方法看上去像:
Apple.new({"commonName"=>commonName, "volume"=>volume, "color"=>color)
我不喜欢使用散列表作为输入。对我来说似乎不必要的庞大,并没有增加任何清晰的代码。虽然在这个例子中看起来并不算什么大问题,但我们的一些方法有超过10个参数,并且通常会有哈希表嵌套在其他哈希表中。我还注意到以这种方式使用哈希表在公共API中非常少见(net/telnet是我现在能想到的唯一例外)。
问题:我可以给我的团队成员什么样的参数,以便不使用散列表作为输入参数。代码的庞大程度并不充分(他们不害怕编写200-400字符行),并且过多的内存/处理开销将不起作用,因为它不会成为我们的工具使用方式的问题。
你已经碰到了后期语言的一个问题:约束参数的唯一方法是命名它们。在ruby中命名参数的唯一方法是发送一个大的旧的blobby哈希表。你有我的同情心。 – 2009-11-24 20:37:02