मेरे पास दो उदाहरण हैं जो एक ही परिणाम देते हैं।जब ब्लॉक फ़ंक्शन (रूबी) से अधिक उपयोगी होते हैं?
ब्लॉक के साथ:
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
दूसरा समाधान और अधिक सरल लगता है, लेकिन मुझे लगता है हमारे आवेदन कोड में पहले एक के कुछ प्रयोगों में पाया गया। मेरा सवाल है: किस स्थिति में पहली बार सिफारिश की जाती है? प्रत्येक के पेशेवरों और विपक्ष क्या हैं?
आपके उदाहरण में मुझे विश्वास नहीं है कि प्रो ऑब्जेक्ट का उपयोग करने का कोई कारण है। प्रो ऑब्जेक्ट्स का पूरा बिंदु उन्हें लेक्सिकल वातावरण में बना रहा है और उन्हें तर्क के रूप में अन्य कार्यों में भेजना है। –
टैग के रूप में "proc" जोड़ा गया। –
'some_stuff (पैराम्स) क्या करता है, क्या यह कुछ देता है? – nkm