কম্পিউটার টিউটোরিয়াল

C#-এ ইন্টারফেস-ভিত্তিক ডিপেন্ডেন্সি ইনজেকশন বাস্তবায়ন

কাপল্ড (dependent) অবজেক্টগুলাকে ডিকাপল্ড (independent) অবজেক্টে রূপান্তর করার প্রক্রিয়াকে ডিপেন্ডেন্সি ইনজেকশন (Dependency Injection) বলা হয়।

ডিপেন্ডেন্সি ইনজেকশনের প্রকার

  • কন্সট্রাক্টর ইনজেকশন (Constructor Injection)
  • সেটার ইনজেকশন (Setter Injection)
  • ইন্টারফেস-ভিত্তিক ইনজেকশন (Interface-based injection)
  • সার্ভিস লোকেটর ইনজেকশন (Service Locator Injection)

ইন্টারফেস ইনজেকশন

ইন্টারফেস ইনজেকশন গেটার এবং সেটার DI-র মতো, কিন্তু ডিফল্ট গেটার/সেটারের বদলে এটি একটি এক্সপ্লিসিট গেটার/সেটার হিসেবে ইন্টারফেস প্রপার্টি সেট করে।

উদাহরণ

public interface IService
{
    string ServiceMethod();
}

public class ClaimService : IService
{
    public string ServiceMethod()
    {
        return "ClaimService is running";
    }
}

public class AdjudicationService : IService
{
    public string ServiceMethod()
    {
        return "AdjudicationService is running";
    }
}

interface ISetService
{
    void setServiceRunService(IService client);
}

public class BusinessLogicImplementationInterfaceDI : ISetService
{
    IService _client1;
    public void setServiceRunService(IService client)
    {
        _client1 = client;
        Console.WriteLine("Interface Injection ==>      Current Service : {0}", _client1.ServiceMethod());
    }
}

ব্যবহার (Consuming)

BusinessLogicImplementationInterfaceDI objInterfaceDI = new BusinessLogicImplementationInterfaceDI();
objInterfaceDI = new ClaimService(); // ত্রুটি: টাইপ মিসম্যাচ, সঠিকভাবে নিচে দেখানো হয়েছে
objInterfaceDI.setServiceRunService(serviceObj);

সংশোধিত ব্যবহার:

var objInterfaceDI = new BusinessLogicImplementationInterfaceDI();
IService serviceObj = new ClaimService();
objInterfaceDI.setServiceRunService(serviceObj);

মূল বিষয়: ইন্টারফেস ইনজেকশনে ডিপেন্ডেন্সি সেট করার জন্য একটি পৃথক ইন্টারফেস (ISetService) ব্যবহার করা হয়, যা লুজ কাপলিং নিশ্চিত করে।

  1. জাভা ৯-এ JavaFX ব্যবহার করে JShell ইমপ্লিমেন্ট করার পদ্ধতি

  2. Gson-এ কাস্টম FieldNamingStrategy ইমপ্লিমেন্টেশন

  3. জাভাতে অ্যানোনিমাস ইনার ক্লাস ব্যবহার করে ইন্টারফেস ইমপ্লিমেন্ট করা

  4. Dagger 2 দিয়ে Android-এ Dependency Injection মাস্টার করুন: ধাপে ধাপে গাইড