मान लीजिए कि आपके पास डोमेन इकाई उपयोगकर्ता है और आप उपयोगकर्ता को अपने शॉपिंग कार्ट में कोई आइटम जोड़ने की क्षमता का समर्थन करना चाहते हैं। अब, हम यह सुनिश्चित करें कि शॉपिंग कार्ट में आइटम अद्वितीय हैं बनाना चाहते हैं, इसलिए हम उपयोगकर्ता वर्ग के भीतर निम्नलिखित समारोह बनाने के लिए:क्या डोमेन या डोमेन में व्यापार तर्क रखा जाना चाहिए?
function AddItemToCart(Item item)
{
// Add business logic to make sure item is unique
}
यह काम करता है महान। लेकिन क्या होगा यदि अब भी जब भी कोई आइटम अपने कार्ट में जोड़ा जाता है तो उपयोगकर्ता को भी ई-मेल करना चाहते हैं? हम इसे AddItemToCart में जोड़ सकते हैं, लेकिन इसे उपयोगकर्ता वर्ग में किसी प्रकार की आईमेलर निर्भरता इंजेक्शन की आवश्यकता होगी।
विकल्प इस लेनदेन को संभालने के लिए एक सेवा बनाना होगा (जैसे शॉपिंगकार्ट सेवा) जो व्यवसाय तर्क करेगा और ई-मेल भेज देगा। हालांकि, यह एक बल्कि एनीमिक डोमेन की ओर जाता है (यानी उपयोगकर्ता वर्ग कुछ भी नहीं है लेकिन गेटर्स/सेटर्स)
क्या होता है यदि साइट व्यवस्थापक फ़ोन कर रहा है तो क्या होगा? क्या आप निश्चित हैं कि User.AddItemToCart इस परिदृश्य में एक उचित डिज़ाइन है? –