2011-02-06 8 views

उत्तर

31

एक डोमेन मॉडल (शब्द सभी जावा विशिष्ट नहीं है) एक वर्ग है जो समस्या डोमेन में कुछ मॉडल करता है, तकनीकी कार्यान्वयन कारणों के लिए मौजूद वर्ग के विपरीत।

डोमेन मॉडल उदाहरणों को अक्सर डेटाबेस में बनाए रखने की आवश्यकता होती है, और जावा में, वे आम तौर पर जावा बीन्स विनिर्देश के अनुरूप होते हैं, यानी वे अलग-अलग गुणों और पैरामीटर रहित कन्स्ट्रक्टर का प्रतिनिधित्व करने के लिए विधियां प्राप्त करते हैं और सेट करते हैं। वसंत और अन्य ढांचे आपको सीधे अपने जेएसपी में इन गुणों तक पहुंचने की अनुमति देते हैं।

उदाहरण के लिए, एक दुकान आवेदन में, आपके कुछ डोमेन मॉडल वर्ग उत्पाद, ऑर्डर, शॉपिंगकार्ट और ग्राहक होंगे।

+1

"डेटाबेस में बने" शब्द का अर्थ आम आदमी भाषा –

+2

@Name में है, इसका मतलब है कि वे उन्हें शामिल अनुप्रयोग उदाहरण से बाहर निकलते हैं। जैसे दुकान ऐप बंद होने और पुनरारंभ करने के बाद भी, यह आपको एक पंजीकृत ग्राहक के रूप में पहचाना जाएगा और आपके शॉपिंग कार्ट और आपके पिछले ऑर्डर की सामग्री याद रखेगा। –

+6

@Name: "persist" मूल रूप से "सेव" का अर्थ है। –

8

Domain model समस्या डोमेन का एक वैचारिक मॉडल है। "जावा डोमेन मॉडल" से उनका मतलब है कि उस मॉडल का प्रतिनिधित्व करने वाले जावा वर्ग। अवधारणा में जावा के लिए कुछ भी विशिष्ट नहीं है।

व्यवसाय डोमेन आवश्यकताओं पर अपने विकास को ध्यान केंद्रित करने के दृष्टिकोण के लिए Domain Driven Design भी देखें।

4

चलो एक उदाहरण के साथ शुरू करते हैं। आप अपने इलाके में कुछ लोगों द्वारा उपयोग किए जाने वाले एप्लिकेशन का निर्माण कर रहे हैं। सिस्टम को डिज़ाइन करते समय आप इन लोगों को अपने सिस्टम के उपयोगकर्ताओं को बुलाते हैं। आपको सिस्टम और प्रमाणीकरण जानकारी में इन लोगों के लिए भूमिकाओं की एक सूची प्रबंधित करना होगा। तो, आप सिस्टम में एक वैचारिक इकाई बनाने का फैसला करते हैं। इस वैचारिक इकाई को आपके सॉफ़्टवेयर समाधान (आपके एप्लिकेशन) में किसी उपयोगकर्ता ऑब्जेक्ट पर मैप किया गया है। अब जब आप अपने आवेदन का प्रतिनिधित्व करते हैं, तो आप उस उपयोगकर्ता ऑब्जेक्ट को डोमेन मॉडल के रूप में वर्णित करते हैं। इस शब्द के पीछे मूल विचार केवल यही है। आप इसके बारे में निम्नलिखित Wikipedia link में आगे पढ़ सकते हैं।

5

माइकल बोर्गवर्ड का जवाब "एक डोमेन मॉडल (शब्द सभी जावा विशिष्ट नहीं है) एक वर्ग" गलत है। मैं बहुत आश्चर्यचकित हूं कि बहुत से जवाब उस उत्तर से सहमत हैं।

एक डोमेन मॉडल उन सभी वर्गों का है जो समाधान के व्यवहार को मॉडल करते हैं। आवश्यक व्यवहार को पूरा करने के लिए न्यूनतम आवश्यक है। डोमेन मॉडल यूआई और दृढ़ता कार्यक्षमता से मुक्त है (जब तक समस्या यूआई या दृढ़ता के आसपास घूमती नहीं है)।

मैंने एक वर्ग में लागू डोमेन मॉडल देखा है लेकिन यह ऑब्जेक्ट उन्मुख समाधान का डिज़ाइन नहीं है। ऑब्जेक्ट-ओरिएंटेड डोमेन मॉडल में, प्रत्येक अवधारणा की अपनी कक्षा होती है जो उस अवधारणा के लिए आवश्यक व्यवहार को लागू करती है और कक्षा की स्थिति को बनाए रखने के लिए आवश्यक फ़ील्ड शामिल करती है।

+3

"डोमेन मॉडल" शब्द में हान एक परिभाषा है। इसका मतलब संपूर्ण ऐप मॉडल या एकल इकाई मॉडल हो सकता है। यह संदर्भ पर निर्भर करता है। –

3

मुझे पता है कि यह आखिरी पोस्ट के बाद से काफी समय से रहा है। लेकिन यह महत्वपूर्ण है कि इस अवधारणा के आसपास की जानकारी स्पष्ट है। एक डोमेन मॉडल अक्सर कक्षाओं का एक सेट होता है जो एक विशेष समस्या डोमेन का प्रतिनिधित्व करता है। अवधारणा किसी एक प्रकार के प्रौद्योगिकी कार्यान्वयन से बंधी नहीं है। मुझे लगता है कि यह कहना एक छोटे से भ्रामक है:

"डोमेन मॉडल उदाहरणों अक्सर एक डेटाबेस में कायम करने की आवश्यकता है, और जावा में, वे आम तौर पर, जावा बीन्स विनिर्देश के अनुरूप वे मिल और सेट तरीकों का प्रतिनिधित्व करने के लिए है अर्थात् व्यक्तिगत गुण और पैरामीटर-कम कन्स्ट्रक्टर। वसंत और अन्य ढांचे आपको सीधे अपने जेएसपी "

डोमेन मॉडल अक्सर डोमेन संचालित डिज़ाइन का परिणाम होते हैं। डोमेन संचालित डिज़ाइन एक अच्छे और मजबूत डोमेन मॉडल के लिए teh कुंजी है।मैं सुझाव देता हूं कि आपको बेहतर समझने के लिए एरिक इवांस की पुस्तक डोमेन संचालित डिजाइन के माध्यम से पढ़ा जाए।

डोमेन मॉडल कक्षाओं में उनके साथ जानकारी है लेकिन मेरी राय में व्यवहार, इस संदर्भ में डेटा से अधिक महत्वपूर्ण है। डोमेन संचालित डिज़ाइन के आस-पास एक बड़ी गलती डेटा कक्षाएं बनाना है जो डोमेन इकाई के डेटा का प्रतिनिधित्व करती हैं, जैसे ग्राहक और ग्राहक विशेषताओं के लिए केवल सार्वजनिक गेटर्स और सेटर्स प्रदान करते हैं। ये ऑब्जेक्ट केवल आपकी डेटाबेस संरचना की नकल करने के लिए प्रवृत्त होते हैं और नतीजतन वास्तविक व्यापार तर्क डोमेन सेवाओं में रहने की अधिक संभावना होती है, जिसके परिणामस्वरूप anemic domain model होता है। यह मॉडल किसी डोमेन मॉडल की तुलना में Transaction Script के करीब है।

+0

क्या कोई नीचे मतदान की व्याख्या कर सकता है? –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^