मैं DI के पीछे की अवधारणा को समझता हूं, लेकिन मैं अभी सीख रहा हूं कि विभिन्न IoC कंटेनर क्या कर सकते हैं। ऐसा लगता है कि ज्यादातर लोग आईओसी कंटेनरों का उपयोग करने के लिए स्टेटलेस सेवाओं को तार-तार करने की वकालत करते हैं, लेकिन संस्थाओं जैसे स्टेटफुल ऑब्जेक्ट्स के लिए उनका उपयोग करने के बारे में क्या?
चाहे वह सही हो या गलत, मैं आम तौर पर व्यवहार के साथ अपनी संस्थाओं को सामान करता हूं, भले ही उस व्यवहार के लिए बाहरी वर्ग की आवश्यकता हो। उदाहरण:
public class Order : IOrder
{
private string _ShipAddress;
private IShipQuoter _ShipQuoter;
public Order(IOrderData OrderData, IShipQuoter ShipQuoter)
{
// OrderData comes from a repository and has the data needed
// to construct order
_ShipAddress = OrderData.ShipAddress; // etc.
_ShipQuoter = ShipQuoter;
}
private decimal GetShippingRate()
{
return _ShipQuoter.GetRate(this);
}
}
जैसा कि आप देख सकते हैं, निर्भरताएं इंजेक्टर इंजेक्ट हैं। अब कुछ सवालों के लिए।
क्या यह गलत व्यवहार माना जाता है कि आपकी संस्थाएं शिपक्वाटर जैसी बाहरी कक्षाओं पर निर्भर हैं? अगर इन परिभाषाओं को सही ढंग से समझूं तो इन निर्भरता को खत्म करना मुझे एनीमिक डोमेन की ओर ले जाता है।
क्या इन निर्भरताओं को हल करने और जरूरत पड़ने पर एक इकाई का निर्माण करने के लिए आईओसी कंटेनर का उपयोग करना बुरा अभ्यास है? क्या इसे करना संभव है?
किसी भी जानकारी के लिए धन्यवाद।