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