আসুন কল্পনা করুন যে আমার কাছে একটি গোষ্ঠী এবং ব্যবহারকারী রয়েছে এবং যখন ব্যবহারকারী কোনও গোষ্ঠীতে যোগদান করতে চান, আমি গোষ্ঠীগুলিকে সার্ভিস কল করি। ডিডিডিতে আমার গ্রুপ করা উচিত .জউইন ইউজার (ব্যবহারকারী) যা দেখতে বেশ ভাল দেখাচ্ছে।
তবে ডিডিডি আপনাকে কার্য সম্পাদনের জন্য (স্টেটলেস) পরিষেবাগুলি ব্যবহার করতে উত্সাহ দেয়, যদি হাতের কাজটি খুব জটিল হয় বা কোনও সত্তার মডেলের সাথে ফিট না হয়। ডোমেন স্তরে পরিষেবা থাকা ঠিক আছে। তবে ডোমেন স্তরের পরিষেবাগুলিতে কেবল ব্যবসায়ের যুক্তি অন্তর্ভুক্ত করা উচিত। অন্যদিকে বাহ্যিক কাজ এবং অ্যাপ্লিকেশন যুক্তি (যেমন কোনও ইমেল প্রেরণের জন্য), অ্যাপ্লিকেশন স্তরে ডোমেন পরিষেবাটি ব্যবহার করা উচিত, যাতে আপনার এটি পৃথক (অ্যাপ্লিকেশন) পরিষেবা মোড়ানো থাকতে পারে।
সমস্যাটি উপস্থিত হয় যদি আমি কোনও ব্যবহারকারী যুক্ত করার জন্য কিছু বৈধতা নিয়ম ...
বৈধকরণের নিয়মগুলি ডোমেন মডেলের অন্তর্গত! এগুলি ডোমেন অবজেক্টের (সত্তা ইত্যাদি) অভ্যন্তরে আবদ্ধ হওয়া উচিত।
... বা কিছু বাহ্যিক কাজ শুরু করা দরকার যখন ব্যবহারকারীকে দলে যুক্ত করা হয়। এই কাজগুলি করার ফলে বাহ্যিক নির্ভরতা থাকা সত্তার দিকে পরিচালিত হবে।
আপনি কোন ধরণের বাহ্যিক কাজটির কথা বলছেন তা আমি জানি না, তবে আমি এটি ইমেল প্রেরণের মতো কিছু বলে ধরে নিয়েছি But তবে এটি সত্যিই আপনার ডোমেন মডেলের অংশ নয়। এটি অ্যাপ্লিকেশন স্তরে থাকতে হবে এবং সেখানে imolded করা উচিত। আপনার অ্যাপ্লিকেশন স্তরে এমন একটি পরিষেবা থাকতে পারে যা এই কাজগুলি সম্পাদন করার জন্য ডোমেন পরিষেবা এবং সত্তাগুলিতে কাজ করে।
তবে কোনও সত্তা কিছু বাহ্যিক পরিষেবা / শ্রেণীর উপর নির্ভর করে তা আমার কাছে এত ভাল এবং "প্রাকৃতিক" বলে মনে হয় না।
এটি অপ্রাকৃত এবং এটি হওয়া উচিত নয়। সত্তাকে এমন জিনিসপত্র সম্পর্কে জানা উচিত নয় যা এটির দায়িত্ব নয়। পরিষেবাদি সত্তা ইন্টারঅ্যাকশন অর্কেস্ট্রেট করতে ব্যবহার করা উচিত।
ডিডিডিতে এটি মোকাবেলার উপযুক্ত উপায় কী?
আপনার ক্ষেত্রে, সম্পর্কটি সম্ভবত দ্বিপাক্ষিক হওয়া উচিত। ব্যবহারকারী গ্রুপে যোগ দেয় বা গোষ্ঠী ব্যবহারকারী নেয় কিনা তা আপনার ডোমেনের উপর নির্ভর করে। ব্যবহারকারী কি দলে যোগ দেয়? বা ব্যবহারকারীকে একটি দলে যুক্ত করা হয়েছে? এটি আপনার ডোমেনে কীভাবে কাজ করে?
যাইহোক, আপনার একটি দ্বিপাক্ষিক সম্পর্ক রয়েছে এবং এভাবে ব্যবহারকারী ইতিমধ্যে ব্যবহারকারী-সামগ্রীর মধ্যে কতগুলি গ্রুপের অন্তর্ভুক্ত তা নির্ধারণ করতে পারেন। একবার আপনি দায়িত্বশীল শ্রেণি নির্ধারণ করার পরে আপনি ব্যবহারকারীকে গোষ্ঠীতে বা গোষ্ঠীতে পাস করার বিষয়টি প্রযুক্তিগতভাবে নগণ্য Whether
বৈধতাটি সত্তার দ্বারা সম্পাদন করা উচিত। অ্যাপ্লিকেশন স্তরটির পরিষেবা থেকে পুরো জিনিসটি কল করা হয় যা প্রযুক্তিগত জিনিসগুলি যেমন ইমেল প্রেরণ ইত্যাদিও করতে পারে do
তবে, যদি বৈধতা যুক্তিটি সত্যিই জটিল হয় তবে একটি ডোমেন পরিষেবা আরও ভাল সমাধান হতে পারে। সেক্ষেত্রে ব্যবসায়ের নিয়মগুলি সেখানে encুকিয়ে দিন এবং তারপরে আপনার অ্যাপ্লিকেশন স্তর থেকে কল করুন।