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