मैं इस आईओसी और डि करने के लिए नए हूँ व्यवसाय मुझे लगता है कि मैं अवधारणा प्राप्त करता है, तो आप वस्तुओं है कि एक वैश्विक गुंजाइश की हैं साथ से गुजर रहे हैं, लेकिन मैं नहीं मिलता है जब आप एक विशिष्ट लॉजिकल स्टेटस की ऑब्जेक्ट को पास करने की आवश्यकता होती है तो यह कैसे काम करता है। तो, उदाहरण के लिए, अगर मैं किसी व्यक्ति को एक ऑब्जेक्ट को एक फ़ाइल फ़ाइल कमांड ऑब्जेक्ट में इंजेक्ट करना चाहता था- मैं सही व्यक्ति ऑब्जेक्ट को गतिशील रूप से कैसे चुन सकता हूं? मैंने जो देखा है, उससे मैं डिफ़ॉल्ट रूप से ऑब्जेक्ट का निर्माण कर सकता हूं, लेकिन मेरा डिस्कनेक्ट यह है कि आप किसी डिफ़ॉल्ट व्यक्ति ऑब्जेक्ट का उपयोग नहीं करेंगे, इसे गतिशील होने की आवश्यकता होगी। मुझे लगता है कि आईओसी कंटेनर सिर्फ आपके लिए ऑब्जेक्ट की स्थिति को बनाए रख सकता है क्योंकि यह चारों ओर पारित हो जाता है, लेकिन फिर यह मानता है कि आप केवल एक व्यक्ति वस्तु में काम कर रहे हैं क्योंकि कोई थ्रेड सुरक्षा नहीं होगी, है ना? मुझे पता है कि मुझे कुछ याद आ रहा है, (शायद फैक्ट्रीक्लास की तरह कुछ), लेकिन मुझे काम करने के तरीके के बारे में थोड़ी अधिक जानकारी चाहिए।स्टेटफुल वस्तुओं (वैश्विक नहीं) के लिए आईओसी निर्भरता इंजेक्शन
उत्तर
ठीक है, आप हमेशा अपने उपभोक्ता में एक Abstract Factory इंजेक्षन और उसका उपयोग स्थानीय स्तर पर scoped वस्तुओं को बनाने के कर सकते हैं।
यह कभी-कभी आवश्यक होता है। इन उदाहरणों को देखें:
- MVC, DI (dependency injection) and creating Model instance from Controller
- Is there a pattern for initializing objects created via a DI container
- Can't combine Factory/DI
हालांकि, आमतौर पर हम संस्थाओं के लिए डि का उपयोग नहीं करते हैं, लेकिन ज्यादातर सेवाओं के लिए। इसके बजाए, संस्थाएं आमतौर पर कुछ प्रकार के रिपोजिटरी के माध्यम से बनाई जाती हैं।
जब आप एक सेवा ऑब्जेक्ट (उदा WriteFileService
) का निर्माण, आप इसे चीजों में इंजेक्षन वह आंतरिक रूप से की जरूरत है यह काम है पूरा करने के लिए। शायद इसे फाइल सिस्टम ऑब्जेक्ट या कुछ चाहिए।
अपने उदाहरण में Person
वस्तु एक विधि कॉल करने के लिए एक पैरामीटर के रूप सेवा वस्तु को पारित किया जाना चाहिए। जैसे writeFileService.write(person)
तो आप Entity person ऑब्जेक्ट में WriteFileService इंजेक्ट नहीं करेंगे ... इसलिए इस मामले में, मैं देख सकता हूं कि DI इंफ्रास्ट्रक्चर के बिना इकाई का उपयोग कैसे किया जा सकता है। हालांकि, WriteFileService ने इसे बनाया जाने पर डीआई इंफ्रास्ट्रक्चर का उपयोग किया था (एक इंजेक्शन क्लास की आवश्यकता के आधार पर जो एक विशिष्ट आउटपुट को लिखता है उदा।WriterA - डेटाबेस, WriterB को लिखता है - एक कंसोल के अधिकार आदि ...)। – mytwocents
- 1. एएसएमएक्स निर्भरता इंजेक्शन और आईओसी
- 2. आईओसी या निर्भरता इंजेक्शन के बिना मॉकिंग
- 3. आईओसी, निर्भरता इंजेक्शन, वर्क ऑफ यूनिट
- 4. वर्कफ़्लो फाउंडेशन में निर्भरता इंजेक्शन/आईओसी 4
- 5. वैश्विक राज्य और एकमात्र निर्भरता इंजेक्शन
- 6. आईओसी इंजेक्शन घटक
- 7. निर्भरता इंजेक्शन बनाम प्रबंधित निर्भरता बनाम वैश्विक वस्तु
- 8. निर्भरता इंजेक्शन और विकास उत्पादकता
- 9. आलसी निर्भरता इंजेक्शन
- 10. केवल सेवा प्रकार वस्तुओं और सिंगलेट्स के लिए निर्भरता इंजेक्शन है? (और gui के लिए नहीं?)
- 11. निर्भरता इंजेक्शन: एएसपीएक्स पेज
- 12. निर्भरता इंजेक्शन
- 13. निर्भरता इंजेक्शन?
- 14. निर्भरता इंजेक्शन
- 15. सेवाओं के बाहर Grails निर्भरता इंजेक्शन?
- 16. निर्भरता इंजेक्शन सर्वोत्तम अभ्यास
- 17. निर्भरता इंजेक्शन
- 18. सी # कन्स्ट्रक्टर और निर्भरता इंजेक्शन
- 19. भाषा फ़ीचर के रूप में निर्भरता इंजेक्शन?
- 20. परीक्षणों में निर्भरता इंजेक्शन
- 21. जावास्क्रिप्ट में निर्भरता इंजेक्शन?
- 22. निर्भरता इंजेक्शन के लिए एक व्यवहार्य विकल्प?
- 23. प्रक्रियात्मक प्रोग्रामिंग के लिए निर्भरता इंजेक्शन
- 24. वेबफॉर्म और निर्भरता इंजेक्शन
- 25. उन ऑब्जेक्ट्स के लिए निर्भरता इंजेक्शन जिनके लिए पैरामीटर
- 26. निर्भरता इंजेक्शन, एक newable (इकाई) में एक "इंजेक्शन" वस्तु (सेवा)
- 27. निर्भरता इंजेक्शन का उपयोग करें
- 28. निर्भरता इंजेक्शन: इंजेक्शन कंटेनर को कैसे पास किया जाए?
- 29. इकाई सेम के लिए गुइस निर्भरता इंजेक्शन?
- 30. निर्भरता इंजेक्शन का उपयोग करके निर्भरता इंजेक्टर इंजेक्शन
, संस्थाओं डि बुनियादी ढांचे का हिस्सा ही नहीं हो सकता है? क्या मैं इसे जटिल बना रहा हूं? – mytwocents
यह सही है: संस्थाएं और मूल्य वस्तुएं अलग-अलग जीवन जीती हैं। एक अर्थ में वे अभी भी डीआई इंफ्रास्ट्रक्चर (आदर्श रूप से, सब कुछ है) द्वारा प्रबंधित किया जाता है, लेकिन बहुत अप्रत्यक्ष तरीके से। वे आमतौर पर रेपॉजिटरीज़ या इसी तरह के माध्यम से स्थायी भंडारण को पढ़ते और लिखे जाते हैं, और * वे * सेवाएं हैं जो डीआई बुनियादी ढांचे का हिस्सा हैं। –
ठीक है, मैंने सोचा था कि डि प्रिंसिपल कह रहे थे कि व्यक्ति Enitity वस्तु (विन्यास के माध्यम से) आईओसी कंटेनर से उपलब्ध कराया जाना चाहिए ... – mytwocents