এটি এমন একটি প্রশ্ন যা আমি এসও-তে ফিরে কিছুক্ষণ জিজ্ঞাসা করেছি, তবে এটি এখানে আরও ভাল আলোচনা হতে পারে ...
আমি যেখানে কাজ করি সেখানে আমরা বেশ কয়েকবার এই বিষয়ে পিছনে গিয়েছি এবং স্যানিটি পরীক্ষা করতে চাইছি। এখানে প্রশ্নটি রয়েছে: বিজনেস অবজেক্টগুলিতে ডেটা পাত্রে হওয়া উচিত (আরও ডিটিও-র মতো ) বা তাদেরও এমন যুক্তি থাকা উচিত যা সেই বস্তুর উপর কিছু কার্যকারিতা সম্পাদন করতে পারে।
উদাহরণ - গ্রাহক অবজেক্টটি ধরুন, এতে সম্ভবত কিছু সাধারণ বৈশিষ্ট্য রয়েছে (নাম, আইডি, ইত্যাদি), সেই গ্রাহকের বস্তুরও কি ফাংশন (সেভ, ক্যালক ইত্যাদি) অন্তর্ভুক্ত করা উচিত?
যুক্তির এক লাইন বলছে যে বস্তুটিকে কার্যকারিতা (একক দায়িত্বের মূল) থেকে আলাদা করুন এবং কার্যকারিতাটি একটি ব্যবসায়িক লজিক স্তর বা অবজেক্টে রাখুন।
অন্য যুক্তির পংক্তিটি বলছে, না, আমার যদি গ্রাহক অবজেক্ট থাকে তবে আমি কেবল গ্রাহককে সেভ করতে চাই এবং সেভ করে তা করা হবে। আমি যদি অবজেক্টটি গ্রাস করছি তবে গ্রাহককে বাঁচাতে কেন অন্য ক্লাস সম্পর্কে জানতে হবে?
আমাদের শেষ দুটি প্রকল্পের বস্তুগুলি কার্যকারিতা থেকে পৃথক করা হয়েছিল, তবে নতুন প্রকল্পটি নিয়ে আবার বিতর্ক উত্থাপিত হয়েছে।
কোনটি আরও বোধ করে এবং কেন ??