2009-11-04 25 views

उत्तर

11

एक "डोमेन" कक्षा वह है जो आपके डेटा को मॉडल करती है। इसका उपयोग आम तौर पर आपके डेटा स्टोर (जैसे डेटाबेस) से डेटा को मैप करने के लिए किया जाता है ताकि इन-मेमोरी ऑब्जेक्ट में हो। एक बिजनेस क्लास वह है जो आपका एप्लिकेशन काम करता है। यह डोमेन वर्ग के समान हो सकता है, और आमतौर पर किसी प्रकार का व्यावसायिक तर्क या प्रसंस्करण करता है।

दृढ़ता ऑब्जेक्ट स्थिति को कुछ डेटा स्टोर (जैसे xml, एक टेक्स्ट फ़ाइल, या अधिक सामान्य रूप से, डेटाबेस) में सहेजने की क्षमता को संदर्भित करती है। तो इस तरह की वस्तु की स्थिति "बनी रहती है" कि एप्लिकेशन चल रहा है या नहीं।

यह मुझे लगता है जैसे आप ऑब्जेक्ट/रिलेशनल मैपिंग के बारे में उत्सुक हैं। मैं शुरू करने के लिए this wikipedia article पढ़ने की सलाह देते हैं।

-4

बिजनेस क्लासेस ऐसे वर्ग हैं जो विशिष्ट प्रोजेक्ट के लिए डिज़ाइन और उपयोग किए जाते हैं और अन्य प्रोजेक्ट के लिए शायद ही पुन: प्रयोज्य होते हैं।

डोमेन कक्षाएं वे कक्षाएं हैं जो विशिष्ट डोमेन के लिए डिज़ाइन और उपयोग की जाती हैं जिनका उपयोग कई परियोजनाओं द्वारा किया जा सकता है जो समान काम करते हैं।

उदाहरण के लिए, जेडीबीसी कक्षाएं डाटाबेस एक्सेस के लिए डोमेन कक्षाएं हैं। स्विंग कक्षाएं जीयूआई निर्माण और हेरफेर के लिए डोमेन कक्षाएं हैं। Form1 जिसमें "हैलो वर्ल्ड" मैसेज प्रदर्शित करने के लिए प्रयुक्त घटक का एक सेट व्यवसाय वर्ग है।

3

व्यवसाय और डोमेन अक्सर समानार्थी रूप से उपयोग किया जाता है। निजी तौर पर, मैं डोमेन मॉडल, डोमेन ऑब्जेक्ट इत्यादि पसंद करता हूं क्योंकि उन्हें व्यवसाय (जो कुछ भी है) से निपटने के लिए बाध्य नहीं हैं।

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

2

एक बिजनेस क्लास डोमेन विशिष्ट तर्क प्रदान करता है।

एक डोमेन क्लास डोमेन का हिस्सा प्रतिनिधित्व करने वाली इकाई है।

एक सतत कक्षा, या बेहतर, एक सतत उदाहरण, सर्वर रीबूट के बाद एक ही डेटा है (डेटा आमतौर पर किसी प्रकार के डेटाबेस पर संग्रहीत होता है)।

चलो एक उदाहरण के रूप में एक बैंकिंग लेनदेन लेते हैं। आपके पास एक सतत डोमेन क्लास Account होगा। मेरा Account (एक उदाहरण) में मान 1000 के साथ Balance फ़ील्ड होगा।

लेनदेन व्यापार तर्क जो डेबिट संभालती AccountDebit की तरह कुछ है और विधि debitAccount(Account account, int amount) के रूप में है, और व्यापार तर्क के रूप में

int balance = account.getBalance(); 
if (balance < amount) { 
    throw exception("You're too poor"); 
} 
balance = balance - amount; 
account.setBalance(balance); 
account.commit(); // save the values to persistent store 

और मुझे पता है कि पैसे आम तौर पर एक पूर्णांक नहीं है, और कहा कि डेबिट कर राशि सामान्य रूप से किसी और :)

28

एक डोमेन वर्गDomain Model मार्टिन Fowler का वर्णन करता है कि के रूप में Patterns of Enterprise Application Architecture में पालन से एक वर्ग है करने के लिए श्रेय दिया जाता है:

डोमेन का एक ऑब्जेक्ट मॉडल जिसमें व्यवहार और डेटा दोनों शामिल होते हैं।

alt text

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

और मेरे लिए, वहाँ एक बिजनेस क्लास साथ कोई अंतर नहीं है: एक व्यापार वस्तु प्रदर्शन नहीं करता और अधिक या कम व्यापार तर्क एक डोमेन वस्तु (एक डोमेन मॉडल जहां व्यापार तर्क डोमेन वस्तुओं के बाहर कार्यान्वित किया जाता है की तुलना में Anemic Domain Model कहा जाता है, जो एक अपमानजनक शब्द है), डोमेन ऑब्जेक्ट्स और business objects समान हैं।

अंत में, लगातार कक्षा एक वर्ग है जो ... हो सकता है जिसका अर्थ है भौतिक भंडारण में जानकारी के स्मृति प्रतिनिधित्व में स्थानांतरित करना जो JVM के लाइव से परे रहेगा। अक्सर, डेटाबेस का उपयोग करके दृढ़ता लागू की जाती है (लेकिन यह एकमात्र समाधान नहीं है, उदाहरण के लिए देखें object prevalence)। विशिष्ट दृढ़ता संचालन में सीआरयूडी संचालन के रूप में जाना जाता है, जिसे बनाएं, पढ़ें, अपडेट करें और हटाएं। डोमेन ऑब्जेक्ट्स अक्सर बार-बार होते हैं Ie आप उन एपीआई के माध्यम से उन पर सीआरयूडी ऑपरेशन कर सकते हैं जो चुने हुए दृढ़ इंजन के अंतर्निहित विवरण को छुपाते हैं।

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