मुझे लगता है कि लीड डेवलपर्स इस तरह के कोड लिख रहे हैं और मार्क सीमैन की पुस्तक ".NET में निर्भरता इंजेक्शन" पढ़ने पर मुझे आश्चर्य है कि विशिष्ट "नया" "विदेशी" है, इस प्रकार "बास्टर्ड इंजेक्शन" ??क्या यह "बास्टर्ड इंजेक्शन एंटी-पैटर्न" का एक अच्छा उदाहरण है?
public class SessionInitServiceManager
{
protected readonly ICESTraceManager _traceManager;
protected readonly ILogger _logger;
protected readonly IAggregateCalls _aggregator;
protected readonly IMultiCoreRepository _repository;
public SessionInitServiceManager(ICESTraceManager traceManager,
ILogger logger,
IAggregateCalls aggregator,
IMultiCoreRepository repository)
{
_traceManager = traceManager;
_logger = logger;
_aggregator = aggregator;
_repository = repository;
}
public SessionInitServiceManager() : this(new CESTraceManager(),
new Logger("BusinessServices.authenticateUser"),
new Aggregator(),
new RepositoryFactory().BuildMultiCoreRepository()) { }
एक अलग रूप में के रूप में, चार मापदंडों सीमा धक्का है समझदार डी (लेखक का कहना है कि उनकी सीमा आम तौर पर चार है) क्योंकि यह आपको पूछताछ शुरू करने के लिए मजबूर करता है कि सत्रInitServiceManager एसआरपी का उल्लंघन कर रहा है या नहीं। किसी अन्य प्रबंधक वर्ग में उत्तीर्ण करने से यह भी पता चलता है कि यह मामला हो सकता है। – RichK
हाँ, मुझे याद है कि 3-4 सामान्य सीमा है। इस नए मुद्दे को बिना किसी आईओसी कंटेनर के साथ या बिना किसी नए मुद्दे से बचने के किसी भी अच्छे उदाहरण। –
उत्तर इस बात पर निर्भर करता है कि किसी भी 'डिफ़ॉल्ट' कार्यान्वयन को उसी लाइब्रेरी में या एक अलग पुस्तकालय में परिभाषित किया गया है या नहीं ary। http://stackoverflow.com/questions/6733667/is-there-an-alternative-to-bastard-injection-aka-poor-mans-injection-via-defa/6739953#6739953 –