देखो (मैं प्रबंधक निर्भरता निर्भरता इंजेक्शन का उपयोग कर रहा):एकाधिक रेपॉजिटरीज और सेवाओं के साथ .NET एमवीसी नियंत्रक? मेरी नियंत्रक पर
public RoleController(IRoleRepository roleRepository, ISiteRepository siteRepository, IUserRepository userRepository, IDbContext dbContext)
{
_roleRepository = roleRepository;
_siteRepository = siteRepository;
_userRepository = userRepository;
_dbContext = dbContext;
}
कई निर्भरता के साथ एक कक्षा के बाद एक कोड गंध है? सही?
लेकिन, मेरे उदाहरण में मैं एक Role
में Users
और Sites
संबद्ध करने के लिए तो मैं इस संघ कर रहा करने के लिए इन निर्भरता की जरूरत की जरूरत है,।
मेलिंग सूची पर कुछ लोग मुझे बताया गया था कि बहुत अधिक निर्भरताएं एक संकेत है कि कुछ गलत है। लेकिन मुझे कोई और रास्ता नहीं दिख रहा है। मैंने अपनी जिम्मेदारियों को अलग किया, उस स्थिति में कुछ ऐसा है जो मुझे नहीं पता कि इलाज कैसे करें? क्या कुछ गलत हॆ?
अद्यतन:
मैं डेटा संग्रह स्थान और DbContext जरूरत है क्योंकि DbContext मेरी UnitOfWork है, खजाने को बचाने नहीं है।
यह उदाहरण एक अन्य सीआरयूडी है जिसमें कुछ अन्य कार्यक्षमताओं जैसे जीआरआईडी के साथ दृश्य में एसोसिएशन शामिल हैं।
अद्यतन 2:
मैं एक वास्तुकला का उपयोग कर रहा हूँ जहाँ मेरे यूआई लेयर MVC है।
आम तौर पर मैं केवल कुल जड़ों के लिए भंडार बनाउंगा, न कि प्रत्येक इकाई। मुझे आपका डोमेन नहीं पता, लेकिन मेरा आंत मुझे बताता है कि आपके पास बहुत सारे भंडार हैं। इसके अतिरिक्त, आपको रिपॉजिटरीज़ और डीबीकॉनटेक्स्ट की आवश्यकता क्यों है? आखिरकार, मैं आम तौर पर 'सेवा' में "ऑर्केस्ट्रेशन" प्रकार की व्यावसायिक गतिविधियों को करना पसंद करता हूं, और सेवा को भंडार आदि से निपटने देता हूं। नियंत्रक की निर्भरता केवल सेवा पर ही बन जाती है। – Brook
@ ब्रूक अपडेट देखें। –
संभावित डुप्लिकेट [asp.net-mvc में, क्या आईओसी का उपयोग नियंत्रक में एकाधिक रिपोजिटरी इंजेक्ट करने के लिए एक और अधिक शानदार तरीका है?] (Http://stackoverflow.com/questions/7311623/in-asp-net-mvc- एक-अधिक-सुरुचिपूर्ण-तरीके-उपयोग-आईओसी-टू-इंजेक्शन-मल्टीप्ल-रिपोजिटर है) – Omar