जब मैं .NET (Winforms, WPF, ASP.NET) पर बड़े पैमाने पर एंटरप्राइज़-व्यापी ऐप्स बनाने की बात करता हूं तो मुझे दो मुख्य "विचारों के स्कूल" दिखाई देते हैं।रिपोजिटरी पैटर्न बनाम "स्मार्ट" व्यावसायिक ऑब्जेक्ट्स
कुछ लोग "रिपोजिटरी पैटर्न" का उपयोग करते हैं जो एक भंडार का उपयोग करता है जो वस्तुओं को लाने, डालने, अपडेट करने और हटाने के बारे में जानता है। उन वस्तुओं की बजाय "गूंगा" है कि उनमें जरूरी नहीं है कि वे पूरी तरह से तर्क लें - उदा। वे कम या ज्यादा डेटा हस्तांतरण वस्तुओं हैं।
अन्य शिविर मैं "स्मार्ट" व्यावसायिक वस्तुओं को कॉल करता हूं जो जानते हैं कि खुद को कैसे लोड करना है, और उनके पास आमतौर पर एक सहेजें(), संभवतः अद्यतन() या यहां तक कि हटाएं() विधि है। यहां आपको वास्तव में किसी भी भंडार की आवश्यकता नहीं है - ऑब्जेक्ट्स स्वयं जानते हैं कि खुद को कैसे लोड और सहेजना है।
बड़ा प्रश्न है: आप किसका उपयोग करते हैं या पसंद करते हैं? और क्यों?
क्या आप अपने सभी ऐप्स में एक ही दृष्टिकोण का उपयोग करते हैं, या क्या आपके पास कोई अन्य मानदंड चुनने के लिए कोई विशेष मानदंड है? यदि हां - तो वे मानदंड क्या हैं?
मैं यहां लौ-युद्ध शुरू करने की कोशिश नहीं कर रहा हूं - बस यह जानने का प्रयास कर रहा हूं कि हर कोई इस बारे में क्या सोचता है और आपकी राय क्या है, और आप दूसरे पर एक (या दोनों) पैटर्न का उपयोग क्यों करते हैं।
किसी भी रचनात्मक इनपुट के लिए धन्यवाद!
उस स्थिति में, एक सामान्य भंडार को तब पता होना चाहिए कि सभी प्रकार की वस्तुओं को कैसे लोड किया जाए। –
और क्योंकि यह सामान्य है यह सभी प्रकार की वस्तुओं को लोड करने में संभाल सकता है। यूनिट परीक्षण को भी आसान बनाता है –
मुझे रिपोजिटरी-स्टाइल भी पसंद है क्योंकि डेटा ट्रांसफर ऑब्जेक्ट्स अधिक लचीला होते हैं। आप उन्हें हर जगह उपयोग कर सकते हैं, ढांचे, परतों आदि पर निर्भरता नहीं। वे केवल अवधारणा, मॉडल का प्रतिनिधित्व करते हैं। यदि आप मॉडल और बीडी के बीच एक पुल चाहते हैं तो आप दृढ़ता परत बनाते हैं। आप उस मॉडल और उपयोगकर्ता के बीच एक पुल चाहते हैं जिसे आप यूआई बनाते हैं। आप उपयोग मामलों को लागू करने के लिए चीजों की गणना करना चाहते हैं, आप व्यवसाय तर्क बनाते हैं। सभी बस उन मॉडल ऑब्जेक्ट्स से संबंधित हैं जो व्यावसायिक अवधारणा से ज्यादा कुछ भी नहीं जुड़े हैं। – helios