我有两个给出相同结果的例子。
带块:
def self.do_something(object_id)
self.with_params(object_id) do |params|
some_stuff(params)
end
end
def self.with_params(object_id, &block)
find_object_by_id
calculate_params_hash
block.call(params_hash)
end
并使用方法:
def self.do_something(object_id)
some_stuff(self.get_params(object_id))
end
def self.get_params(object_id)
find_object_by_id
calculate_params_hash
params_hash
end
第二种解决方案似乎更直接,但我在我们的应用程序代码中发现了第一种的一些用法。我的问题是:在哪种情况下推荐第一个?各有什么优缺点?