मैं एक डी नौसिखिया का थोड़ा सा हूँ, तो मुझे माफ कर दो अगर यह गलत दृष्टिकोण है या मूर्ख सवाल है।मुझे डीआई/आईओसी के लिए अपने सीटीआर पैरामीटर को कैसे ऑर्डर करना चाहिए?
मान लें कि मेरे पास एक ऐसा फॉर्म है जो ऑर्डर बनाता/अपडेट करता है, और मुझे पता है कि इसे प्रदर्शित करने के लिए उत्पादों और ग्राहकों की एक सूची पुनर्प्राप्त करने की आवश्यकता होगी। मैं आदेश ऑब्जेक्ट में पास करना चाहता हूं कि यह संपादन कर रहा है, लेकिन मैं उत्पाद सेवा और ग्राहक सेवा को निर्भरताओं के रूप में इंजेक्ट करना चाहता हूं।
तो मैं सेवाओं को आपूर्ति करने के लिए अपना आईओसी कंटेनर (जो भी मैं साथ जाऊंगा) चाहता हूं, लेकिन ऑर्डर ऑब्जेक्ट को संपादित करने के लिए कॉलिंग कोड पर निर्भर होगा।
मैं पहले पैरामीटर और ProductsService और CustomersService उसके बाद के रूप में आदेश वस्तु लेने के रूप में निर्माता की घोषणा करना चाहिए, जैसे:
public OrderForm(Order order, ProductsService prodsSvc, CustomersService custsSvc)
... या निर्भरता पहले आदेश वस्तु पिछले आते हैं और चाहिए, उदाहरण:
public OrderForm(ProductsService prodsSvc, CustomersService custsSvc, Order order)
क्या इससे कोई फर्क पड़ता है? क्या यह निर्भर करता है कि मैं किस आईओसी कंटेनर का उपयोग करता हूं? या कोई बेहतर तरीका है?
ठीक है, यह समझ में आता है। तो या तो मैं अपनी सभी निर्भरताओं के लिए संपत्ति इंजेक्शन का उपयोग करता हूं, या केवल सीटीआर में निर्भरता पास करता हूं और "आवश्यक" ऑब्जेक्ट के लिए एक संपत्ति पेश करता हूं? –
हाँ, आप सही हैं। डीपी और सामान्य गुणों को मिश्रण न करें क्योंकि यह अप्रत्याशित समस्याओं का कारण बन सकता है और उपयुक्त आईओसी ढांचे की सीमा को सीमित कर सकता है। – aku