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