নির্ভরতা ইনজেকশন ব্যবহার করার জন্য আমি একটি বিদ্যমান সিস্টেমকে পুনঃনির্ধারণ করছি এবং সেই কাজটি সুচারুভাবে চলছে।
কিছুক্ষণ পরে আমি লক্ষ্য করেছি যে বিপুল সংখ্যক ইন-হাউস লাইব্রেরি আমার ব্যবহৃত ডিআই ফ্রেমওয়ার্কের উপর নির্ভরশীল হয়ে পড়েছে। ফলস্বরূপ পুরো প্রকল্পটি এখন এই তৃতীয় পক্ষের কাঠামোর উপর নির্ভর করে।
আমি সমস্ত নির্ভরতা ভাগ করে নেওয়া লাইব্রেরির উপর নির্ভরশীল করে তাদের নির্ভরশীলতা ডিক্লুং করার ক্ষেত্রে বিড়ম্বনা দেখেছি।
আমার প্রথম প্রতিক্রিয়াটি নির্ভরতা কাঠামোর চারপাশে একটি মোড়ক লাইব্রেরি তৈরি করা হয়েছিল। অতএব, প্রয়োজন হলে আমি এই কাঠামোটি প্রতিস্থাপন করতে পারি। কাজের সাথে জড়িত থাকার অনুমান করার পরে আমি বুঝতে পেরেছিলাম যে ফলাফলযুক্ত এপিআই বিদ্যমান কাঠামোর সাথে সমান হবে এবং তাই এটির স্থান পরিবর্তন করা আরও কঠিন করে তুলবে। তাই আমি ধারণাটি ত্যাগ করেছি।
আমার উদ্বেগ হ'ল আমি যে ডিআই ফ্রেম ফ্রেমটি ব্যবহার করছি তা অপ্রচলিত হয়ে যায় বা প্রতিস্থাপনের প্রয়োজন।
ডিআই-এর সাথে কাজ করার সময় কি এমন কোনও বিকাশের প্যাটার্ন উপস্থিত রয়েছে যা কোনও প্রকল্প এবং ডিআই কাঠামোর মধ্যে সংযোগকে হ্রাস করে?
DIFramework.Get<IService>()
আসলে নির্ভরতা ইনজেকশন নয়; এটি সার্ভিস লোকেটার নামে সম্পর্কিত একটি প্যাটার্ন। প্রচুর লোক সার্ভিস লোকেটারকে অপছন্দ করে কারণ এটি আপনাকে কাঠামোর সাথে জুড়ে দেয় এবং এটি খুব সহজেই আপত্তিজনকভাবে ব্যবহৃত হয় (যেমন সিঙ্গলটনের)। মার্টিন ফওলারের