এটি আপনি যে ধরনের আর্কিটেকচার চান তার উপর নির্ভর করে।
- ডোমেন চালিত ডিজাইনে, আপনি এমন একটি ডোমেন মডেল তৈরি করবেন যাতে ডেটা এবং কার্যকারিতা উভয়ই থাকে।
এর অর্থ হ'ল কোনওটির Orderএকটি সম্পত্তি (বা পদ্ধতি) রয়েছে যা উপরের ভিত্তিতে অর্ডারের মোট মূল্য ফেরত দেয় OrderLines। Orderআরো একটি পদ্ধতি হবে AddOrderItem(Product product, int amount)এবং Orderযদি সেখানে ইতিমধ্যে একটি কিনা চেক করবে OrderLineযে নির্দিষ্ট পণ্য জন্য।
এই জাতীয় মডেলটিতে আপনার কাছে এমন অবজেক্টগুলিও থাকতে পারে যা বাস্তব সত্তা নয়, যেমন Repositoryডেটা অ্যাক্সেস করার জন্য বা Factoryসত্তা তৈরির জন্য। এগুলিকে ডোমেন পরিষেবাদি বলা হয়। একটি অ্যাপ্লিকেশন স্তর ডোমেন পরিষেবাগুলি কল করার জন্য দায়বদ্ধ (উদাহরণস্বরূপ ডাটাবেস থেকে কোনও সত্তা পুনরুদ্ধার করতে) এবং তারপরে এটি সত্তায় কার্যকারিতা সম্পাদন করে। Application Layerযতটা সম্ভব পাতলা হওয়া উচিত।
এটি ডিডিডি সম্পর্কে একটি দুর্দান্ত নিবন্ধ যা এই ধারণাগুলি আরও বিশদে ব্যাখ্যা করে।
- আপনি একটি অ্যানমিক ডোমেন মডেলও ব্যবহার করতে পারেন । এর অর্থ হ'ল আপনার সত্তাগুলিতে গেট / সেট বৈশিষ্ট্য রয়েছে এবং এতে কোনও আচরণ নেই। এই জাতীয় ডিজাইনে আপনার ব্যবসায়ের স্তরটিতে
Orderদামের গণনা করা এবং সদৃশ যাচাই করার মতো আচরণ থাকবে OrderLines।
অ্যানিমিক ডোমেন মডেলটি খারাপ জিনিস কিনা তা নিয়ে বিভিন্ন মতামত রয়েছে। ব্যক্তিগতভাবে আমি একটি বাস্তব ডোমেন মডেল পছন্দ করি।
এই নিবন্ধটি অ্যানিমিক এবং অ-অ্যানিমিক ডোমেন মডেলের মধ্যে পার্থক্য বর্ণনা করে।