কাপল্ড (dependent) অবজেক্টগুলাকে ডিকাপল্ড (independent) অবজেক্টে রূপান্তর করার প্রক্রিয়াকে ডিপেন্ডেন্সি ইনজেকশন (Dependency Injection) বলা হয়।
ডিপেন্ডেন্সি ইনজেকশনের প্রকার
- Constructor Injection: কন্সট্রাক্টর প্যারামিটার হিসেবে ইন্টারফেস পাস করা হয়। অবজেক্ট তৈরি করার সময় ডিপেন্ডেন্সি প্রদান করা হয়।
- Setter Injection: পাবলিক প্রপার্টি (getter/setter) ব্যবহার করে ডিপেন্ডেন্সি সেট করা হয়।
- Interface-based Injection: গেটার/সেটার DI-র মতো, কিন্তু এক্সপ্লিসিট ইন্টারফেস (
ISetService) ব্যবহার করে প্রপার্টি সেট করা হয়। - Service Locator Injection:
newঅপারেটরর রিপ্লেসমেন্ট। ক্লাসের ডিপেন্ডেন্সি মেথড আহ্বান করে হাইড করে (অবজেক্ট তৈরি না করে)।
ডিপেন্ডেন্সি ইনজেকশনের সুবিধা
- ক্লাস কাপলিং কমায় (Reduces class coupling)
- কোড রিয়ুজিবিলিটি বাড়ায় (Increases code reusability)
- কোড মেইনটেইনেবিলিটি উন্নত করে (Improves code maintainability)
- অ্যাপ্লিকেশন টেস্টিং উন্নত করে (Improves application testing)
- সেন্ট্রালাইজড কনফিগারেশন (Centralized configuration)
ডিপেন্ডেন্সি ইনজেকশনের কমি
প্রধান কমি হলো অনেক ইনস্ট্যান্স এবং ডিপেন্ডেন্সি একসাথে ব্যবহার করলে রেজোলভ করা খুব কঠিন হয়।
সुझাব: আধুনিক ASP.NET Core-এ বিল্ট-ইন DI কন্টেইনার (IServiceCollection) ব্যবহার করা প্রস্তাবিত, যা কন্সট্রাক্টর ইনজেকশনকে প্রমোট করে।