Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में इंटरफेस-आधारित इंजेक्शन का उपयोग करके डिपेंडेंसी इंजेक्शन कैसे लागू करें

कपल्ड (निर्भर) ऑब्जेक्ट्स को डिकपल्ड (स्वतंत्र) ऑब्जेक्ट्स में बदलने की प्रक्रिया को डिपेंडेंसी इंजेक्शन (DI) कहा जाता है।

डिपेंडेंसी इंजेक्शन के प्रकार

  1. कंस्ट्रक्टर इंजेक्शन
  2. सेटर इंजेक्शन
  3. इंटरफेस-आधारित इंजेक्शन
  4. सर्विस लोकेटर इंजेक्शन

इंटरफेस इंजेक्शन

इंटरफेस इंजेक्शन गेटर और सेटर DI के समान है, लेकिन गेटर/सेटर 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();
IService serviceObj = new ClaimService(); // या AdjudicationService
objInterfaceDI.SetServiceRunService(serviceObj);

मुख्य बिंदु

  • इंटरफेस ISetService इंजेक्शन कॉन्ट्रैक्ट को परिभाषित करता है
  • क्लास BusinessLogicImplementationInterfaceDI इस इंटरफेस को लागू करती है
  • रनटाइम पर किसी भी IService कार्यान्वयन को इंजेक्ट किया जा सकता है
  • यह लोचशीलता प्रदान करता है लेकिन जटिलता बढ़ाता है
नोट: मूल कोड में कंज्यूमिंग सेक्शन में त्रुटि थी (objInterfaceDI = new ClaimService() गलत है)। सही संस्करण ऊपर दिखाया गया है।
  1. Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें

    Java 9 ने jdk.jshell API पेश किया जो डेवलपर्स को अपने एप्लिकेशन में JShell कार्यक्षमता को एम्बेड करने की अनुमति देता है। यह लेख दिखाता है कि एक JavaFX एप्लिकेशन कैसे बनाया जाए जो JShell का उपयोग करके कोड स्निपेट्स का मूल्यांकन करता है और परिणाम प्रदर्शित करता है। आवश्यक निर्भरताएं Java 9+ (JSh

  1. - Java में एनोनिमस इनर क्लास का उपयोग करके इंटरफेस कैसे इम्प्लीमेंट करें?

    एक एनोनिमस इनर क्लास एक ऐसी क्लास है जिसका कोई नाम नहीं होता, हम इसे सीधे इंस्टेंशिएशन लाइन पर परिभाषित करते हैं। उदाहरण निम्न प्रोग्राम में, हम TutorialsPoint इंटरफेस के toString() मेथड को एनोनिमस इनर क्लास का उपयोग करके इम्प्लीमेंट कर रहे हैं, और इसके रिटर्न मान को प्रिंट कर रहे हैं। interface

  1. - Dagger 2 के साथ Android में डिपेंडेंसी इंजेक्शन में मास्टरी - चरण-दर-चरण गाइड

    Kriptofolio ऐप सीरीज़ - भाग 4डिपेंडेंसी इंजेक्शन आपके कोड को काफी बेहतर बनाएगा। यह आपके कोड को अधिक मॉड्यूलर, फ्लेक्सिबल और टेस्टेबल बनाता है। वास्तव में इसका नाम इसके पीछे के विचार से अधिक जटिल लगता है।सीरीज़ के इस भाग में हम डिपेंडेंसी इंजेक्शन के बारे में सीखेंगे। फिर हम इसे Kriptofolio (पहले My