यह वास्तुकला के प्रकार पर निर्भर करता है जिसे आप चाहते हैं।
- डोमेन ड्रिवेन डिज़ाइन में, आप एक डोमेन मॉडल बनाएंगे जिसमें डेटा और कार्यक्षमता दोनों होंगे।
इसका मतलब यह होगा कि Order
एक संपत्ति (या विधि) है जो के आधार पर आदेश की कुल कीमत लौटाएगी OrderLines
। Order
यह भी एक विधि के लिए होता है AddOrderItem(Product product, int amount)
और Order
अगर वहाँ पहले से ही है की जाँच करेगा OrderLine
कि विशेष उत्पाद।
इस तरह के एक मॉडल में आपके पास ऐसी वस्तुएं भी होंगी जो वास्तविक इकाइयां नहीं हैं, जैसे Repository
डेटा तक पहुंचने के लिए या Factory
संस्थाएं बनाने के लिए। इन्हें Domain Services कहा जाता है। एक अनुप्रयोग परत डोमेन सेवाओं को कॉल करने के लिए जिम्मेदार है (उदाहरण के लिए डेटाबेस से किसी इकाई को पुनः प्राप्त करने के लिए) और फिर यह इकाई पर कार्यक्षमता निष्पादित करेगा। Application Layer
संभव के रूप में पतली होना चाहिए।
यह डीडीडी के बारे में एक अच्छा लेख है जो इन अवधारणाओं को अधिक विस्तार से बताता है।
- आप एनीमिक डोमेन मॉडल का भी उपयोग कर सकते हैं । इसका मतलब है कि आपकी संस्थाओं में संपत्तियां / सेट शामिल हैं और इनमें कोई व्यवहार नहीं है। इस तरह के डिजाइन में, आपके बिजनेस लेयर में व्यवहार शामिल होगा, जैसे कि
Order
मूल्य की गणना करना और डुप्लिकेट की जांच करना OrderLines
।
अलग-अलग राय है कि क्या एक एनीमिक डोमेन मॉडल एक बुरी चीज है। व्यक्तिगत रूप से मैं एक वास्तविक डोमेन मॉडल पसंद करता हूं।
यह लेख एक एनीमिक और गैर-एनीमिक डोमेन मॉडल के बीच अंतर का वर्णन करता है।