मैं वास्तव में नहीं लगता है कि डि / आईओसी हैं करते हैं कि अजगर में असामान्य। हालांकि, असामान्य क्या है , DI / IoC चौखटे / कंटेनर हैं ।
इसके बारे में सोचें: DI कंटेनर क्या करता है? यह आपको अनुमति देता है
- एक स्वतंत्र अनुप्रयोग में एक साथ स्वतंत्र घटक तार ...
- ... चलने के समय पर।
हमारे पास "एक साथ वायरिंग" और "रनटाइम पर" के नाम हैं:
- पटकथा
- गतिशील
इसलिए, एक DI कंटेनर एक गतिशील स्क्रिप्टिंग भाषा के लिए एक दुभाषिया के अलावा कुछ भी नहीं है। वास्तव में, मुझे यह बताने की आवश्यकता है कि: एक सामान्य जावा / .NET DI कंटेनर कुछ भी नहीं है लेकिन वास्तव में खराब गतिशील स्क्रिप्टिंग भाषा के लिए बट-बदसूरत, कभी-कभी XML- आधारित, सिंटैक्स के साथ एक भद्दा दुभाषिया है।
जब आप पायथन में कार्यक्रम करते हैं, तो अपने निपटान में एक सुंदर, शानदार पटकथा भाषा होने पर आप एक बदसूरत, खराब स्क्रिप्टिंग भाषा का उपयोग क्यों करना चाहेंगे? वास्तव में, यह एक अधिक सामान्य प्रश्न है: जब आप किसी भी भाषा में बहुत अधिक प्रोग्राम करते हैं, तो आप अपने निपटान में जाइथन और आयरनपिथॉन होने पर एक बदसूरत, खराब स्क्रिप्टिंग भाषा का उपयोग क्यों करना चाहेंगे?
इसलिए, पुनरावृत्ति करने के लिए: DI / IoC का अभ्यास ठीक वैसा ही महत्वपूर्ण है जैसा कि जावा में है, ठीक उसी कारणों से। हालांकि DI / IoC का कार्यान्वयन भाषा में बनाया गया है और अक्सर इतना हल्का होता है कि यह पूरी तरह से गायब हो जाता है।
(यहाँ एक सादृश्य के लिए एक संक्षिप्त विवरण दिया गया है: असेंबली में, एक सबरूटीन कॉल एक बहुत बड़ी बात है - आपको अपने स्थानीय चरों और रजिस्टरों को मेमोरी में सहेजना होगा, अपना रिटर्न एड्रेस कहीं बचाना होगा, निर्देश सूचक को आपके द्वारा कॉल किए जाने वाले सबरूटीन में बदलना होगा, इसे समाप्त करने के लिए किसी तरह से वापस अपने सबरूटीन में कूदने की व्यवस्था करें, जहां कहीं भी कैली उन्हें मिल सकती है, वहां तर्क रखें और इसी तरह। IOW: असेंबली में, "सबरूटीन कॉल" एक डिज़ाइन पैटर्न है, और इससे पहले जैसी भाषाएं हैं। फोरट्रान जिसकी उप-निर्मित कॉल थी, लोग अपने "सबरूटीन फ्रेमवर्क" का निर्माण कर रहे थे। क्या आप कहेंगे कि सबरूटीन कॉल पायथन में "असामान्य" हैं, सिर्फ इसलिए कि आप सबरूटीन फ्रेमवर्क का उपयोग नहीं करते हैं?)
BTW: DI को अपने तार्किक निष्कर्ष पर ले जाने के लिए कैसा दिखता है, इसके एक उदाहरण के लिए, गिल्ड ब्राचा के समाचारपत्र प्रोग्रामिंग भाषा और इस विषय पर उनके लेखन पर एक नज़र डालें :