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