मैं जानना चाहता हूं कि डीटीओ वस्तुओं के रचनाकारों को डिजाइन करने में सबसे अच्छा अभ्यास क्या है।सी # कन्स्ट्रक्टर और निर्भरता इंजेक्शन
कहना मैं इस तरह की एक Dto वस्तु है:
मैं एक निर्माता की घोषणा कर सकता है:
public CustomerDto(string name, string surname, string phone, ...)
{
this.Name = name;
this.Surname = surname;
this.Phone = phone;
...
}
जब आप यह देख
class CustomerDto
{
public string Name { get; set; }
public string Surname { get; set; }
public string Phone { get; set; }
...
}
वहाँ वस्तु के निर्माण के लिए कई तरीके हैं कन्स्ट्रक्टर और तत्काल एक एसआरपी (एकल जिम्मेदारी) उल्लंघन का निष्कर्ष निकाला?
भले ही ये गुण सभी संबंधित हैं।
कोई भी तर्क दे सकता है कि गुणों को प्रमाणित करने की कोई आवश्यकता नहीं है क्योंकि यह एक डीटीओ है और इसका कोई व्यवहार नहीं है, और व्यवहार डोमेन ऑब्जेक्ट पर होना चाहिए जो इस मानचित्र से है।
सी # में हम भी अधिक सुंदर ढंग से इस वस्तु का निर्माण कर सकते हैं:
var dto = new CustomerDto()
{
Name = "Some name",
Surname = "Some surname"
}
या एक धाराप्रवाह बिल्डर या इस तरह के NBuilder के रूप में एक रूपरेखा का उपयोग करें।
ऑटोमैपपर जैसे ऑटो मैपिंग फ्रेमवर्क का भी उपयोग किया जाता है। समस्या एक आईओसी कंटेनर का भी उपयोग कर रही है जो सीटीआर जटिल हो जाती है, साथ ही उदाहरण के लिए तर्कों को स्वैप करने में जोखिम, आप उस नाम से गुजरते हैं जहां उपनाम या इसके विपरीत, प्रमाणीकरण उपरोक्त के रूप में स्पष्ट मैपिंग को और अधिक आसान याद कर सकता है।
कृपया मुझे यह समझाने में मदद करें कि कौन सा बेहतर तरीका है।
संभावित डुप्लिकेट [निर्भरता इंजेक्शन - डेटा ट्रांसफर ऑब्जेक्ट्स (डीटीओ) के साथ उपयोग?] (Http: // stackoverflow।कॉम/प्रश्न/6297322/निर्भरता-इंजेक्शन-डेटा-ट्रांसफर-ऑब्जेक्ट्स-डीटीओएस के साथ-साथ) –
मैं इसी समस्या में आया, और कन्स्ट्रक्टर के खिलाफ फैसला किया .. एक साधारण कारण के लिए: बाद में, एक महीने में, या 6 महीनों, मैं या कोई और इसे देखने जा रहा है और इसके बारे में सोचना है वैसे ही खुद (और खुद) सोच रहे हैं। मुझे कोड पढ़ने के दौरान सोच मिल गई है यह एक संकेत है कि यह बहुत जटिल है। – dferraro