চ্যাপ্টার ৫

Dependency Injection (ঠিকাদার নিয়োগ)

(কাপলিং এবং ফ্লেক্সিবিলিটির গল্প)

Tight Coupling Example
"মামা, তুই যখন বাড়ি বানাস, তুই কি নিজে হাতুড়ি নিয়ে ইট ভাঙিস? না! তুই রাজমিস্ত্রি (Dependency) ভাড়া করিস। DI মানে হলো, নিজের কাজ নিজে না করে, বাইরে থেকে এক্সপার্ট ইনজেক্ট করা (ধার করা)।"
⛔ Tight Coupling (খারাপ)

ক্লাসের ভেতরেই new Service() দিয়ে অবজেক্ট বানানো। মানে রাজমিস্ত্রি তোর ঘরের সাথে আঠা দিয়ে লাগানো। তাকে ভালো না লাগলে বদলানো যাবে না। কোড চেঞ্জ করতে গেলে সব ভাঙতে হবে।

✅ Dependency Injection (ভালো)

কনস্ট্রাক্টরে অবজেক্ট পাস করা। মানে তুই বলবি "আমার একজন মিস্ত্রি লাগবে"। Container তোকে মিস্ত্রি এনে দেবে। যখন খুশি মিস্ত্রি বদলানো যায় (Loose Coupling)।

Dependency Injection Example

চিত্র ২: DI Container - বাইরে থেকে সাপ্লাই দেওয়া হচ্ছে! 😎

👨‍💻 Constructor Injection (C# Example)
// ইন্টারফেস (চুক্তিনামা)
public interface IMistri {
    void Work();
}

public class HomeBuilder
{
    private readonly IMistri _mistri;

    // ঠিকাদার বাইরে থেকে সাপ্লাই দেওয়া হচ্ছে (Injection)
    // কনস্ট্রাক্টরের মাধ্যমে আমরা ডিপেন্ডেন্সি নিচ্ছি
    public HomeBuilder(IMistri mistri) 
    {
        _mistri = mistri; // সেট করে দিলাম
    }

    public void Build()
    {
        // এখন যে মিস্ত্রিই আসুক, সে কাজ করবে
        _mistri.Work();
    }
}

🧠 মগজ ধোলাই (DI Quiz)

মামা, Dependency Injection কেন ব্যবহার করবি?

← Previous Next: Databases →