Tôi có hai ví dụ cho kết quả tương tự.Khi khối nào hữu ích hơn các hàm (ruby)?
Với khối:
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
và với phương pháp:
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
Giải pháp thứ hai có vẻ đơn giản hơn, nhưng tôi tìm thấy một số tập quán của người đầu tiên trong mã ứng dụng của chúng tôi. Câu hỏi của tôi là: trong đó tình huống đầu tiên được đề nghị? Những ưu và nhược điểm của mỗi loại là gì?
Trong ví dụ của bạn, tôi không tin rằng có lý do để sử dụng đối tượng Proc. Toàn bộ điểm của các đối tượng Proc là làm cho chúng tồn tại trong môi trường từ vựng và chuyển chúng đến các hàm khác làm đối số. –
đã thêm "proc" làm thẻ. –
'some_stuff (params)' làm gì, nó có trả về gì không? – nkm