मैं फिर कोशिश करूंगा। मेरा आखिरी जवाब एक मील से सवाल और विषय से ज़ूम किए गए तरीके से चूक गया।
छद्म कोड का उपयोग करना, निर्भरता इंजेक्शन के साथ बाहर का कहना है:
class Person
def Chat() {
someOperation("X","Y","Z")
end
end
...
Person.new().Chat()
और के साथ:
class Person
initialize(a,b,c)
@a=a
@b=b
@c=c
end
def Chat()
someOperation(@a,@b,@c)
end
end
...
Person.new("X","Y","Z").Chat()
, और आम तौर पर में वस्तु और के लिए अलग अलग फ़ाइलों में कॉल डाल के साथ। एससीएम उद्देश्यों।
चाहे "एक्स", "वाई" या "जेड" मजाक कर रहे हैं (... यदि वे बदले में ऑब्जेक्ट्स थे ... (!) ... (!) ...) के पास कुछ भी नहीं है क्या डी अच्छा है। वास्तव में। :-)
DI अन्य कई कार्यों की तरह पाइथन या रूबी में बस आसान है, क्योंकि वहां एक अधिक स्क्रिप्टिंग दृष्टिकोण है, जैसे जोर्ग कहते हैं; और निश्चित रूप से एक संस्कृति और प्रवृत्ति से भी कम कहता है कि स्थिरांक और एडेप्टर मॉडल और वैश्विक स्थिरांक में आबादी प्राप्त कर रहे हैं।
मेरे लिए व्यावहारिक शर्तों में डीआई उन अनुप्रयोग मानकों, एपीआई स्थिरांक और कारखानों को अलग-अलग फाइलों में अलग करने की दिशा में पहला कदम है ताकि आपकी संशोधन ट्रैकिंग रिपोर्ट कम स्पेगेटी जैसी हो ("क्या उन अतिरिक्त चेकइन को AppController पर देखा गया था कॉन्फ़िगरेशन बदलें ..? या कोड को अपडेट करने के लिए ...? ") और अधिक जानकारीपूर्ण, और पढ़ने के लिए और अधिक आसान है।
मेरे सिफारिश:
डि का उपयोग करते रहें ... :-) इस सवाल का डुप्लिकेट हो रहा है .. http://stackoverflow.com/questions/2273683/why-are-ioc-containers- अनावश्यक-गतिशील-भाषाओं/2308494 # 2308494 –