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