আমি এই পুরো থ্রেডটি দু'বার পড়েছি এবং আমি মনে করি যে লোকেরা যা জানতে চায় তার দ্বারা প্রতিক্রিয়া জানায়, যা জিজ্ঞাসিত তা দ্বারা নয়।
জেপির আসল প্রশ্নটি দেখে মনে হচ্ছে যে তিনি একটি রেজলভার এবং তারপরে ক্লাসগুলির একগুচ্ছ পাঠিয়ে অবজেক্টগুলি তৈরি করছেন, তবে আমরা ধরে নিচ্ছি যে classes শ্রেণিগুলি / অবজেক্টগুলি নিজেরাই সার্ভিস, ইনজেকশনের জন্য পাকা। তারা না থাকলে কী হবে?
জেপি, আপনি যদি ডিআই-কে উপার্জনের সন্ধান করছেন এবং প্রাসঙ্গিক তথ্যগুলির সাথে ইঞ্জেকশন মিশ্রণের গৌরব অর্জন করতে চান তবে এই নিদর্শনগুলির মধ্যে কোনওটিই (বা অনুমিত "অ্যান্টি-প্যাটার্ন") নির্দিষ্টভাবে এটিকে সম্বোধন করে না। এটি আসলে এমন একটি প্যাকেজ ব্যবহার করতে শুরু করে যা আপনাকে এইরকম প্রচেষ্টাতে সমর্থন করবে।
Container.GetSevice<MyClass>(someObject1, someObject2)
... এই ফর্ম্যাটটি খুব কমই সমর্থিত। আমি বিশ্বাস করি যে এই ধরনের সমর্থন প্রোগ্রামিংয়ের অসুবিধা, বাস্তবায়নের সাথে জড়িত এমন দু: খজনক পারফরম্যান্সকে যুক্ত করেছে, এটি ওপেনসোর্স বিকাশকারীদের জন্য অপ্রত্যাশিত করে তোলে।
তবে এটি করা উচিত, কারণ আমার মাই ক্লাস'এর জন্য একটি কারখানা তৈরি করতে এবং নিবন্ধিত করতে সক্ষম হওয়া উচিত, এবং সেই কারখানার এমন ডেটা / ইনপুট গ্রহণ করা উচিত যা কেবল পাস করার জন্য "পরিষেবা" হয়ে যায় না ডেটা। যদি "অ্যান্টি-প্যাটার্ন" নেতিবাচক পরিণতি সম্পর্কে হয়, তবে ডেটা / মডেলগুলি পাস করার জন্য কৃত্রিম পরিষেবা ধরণের অস্তিত্বকে বাধ্য করা অবশ্যই নেতিবাচক (আপনার ক্লাসগুলি একটি ধারক মধ্যে গুটিয়ে রাখা সম্পর্কে আপনার অনুভূতির সাথে সমান। একই প্রবৃত্তি প্রযোজ্য)।
কিছু কাঠামো দেখানো হলেও এমন কাঠামো রয়েছে যা সহায়তা করতে পারে। উদাহরণস্বরূপ, নিনজেক্ট:
কনস্ট্রাক্টরের অতিরিক্ত পরামিতি সহ নিনজেক্ট ব্যবহার করে একটি উদাহরণ তৈরি করা
এটি নেট জন্য, জনপ্রিয়, এবং এখনও এটি যতটা পরিষ্কার হওয়া উচিত তেমন নেই, তবে আমি নিশ্চিত যে আপনি নিয়োগের জন্য যে কোনও ভাষা বেছে নিন something