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

C# में प्रॉपर्टी का उपयोग करके डिपेंडेंसी इंजेक्शन कैसे लागू करें (सेटर इंजेक्शन)

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

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

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

सेटर इंजेक्शन (Getter/Setter Injection)

गेटर और सेटर इंजेक्शन डिफ़ॉल्ट पब्लिक प्रॉपर्टी प्रोसीजर जैसे get { } और set { } का उपयोग करके निर्भरता को इंजेक्ट करता है।

उदाहरण

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";
    }
}

public class BusinessLogicImplementation
{
    private IService _client;

    public IService Client
    {
        get { return _client; }
        set { _client = value; }
    }

    public void SetterInj()
    {
        Console.WriteLine("Getter and Setter Injection ==> Current Service : {0}", Client.ServiceMethod());
    }
}

उपयोग (Consuming)

BusinessLogicImplementation ConInjBusinessLogic = new BusinessLogicImplementation();
ConInjBusinessLogic.Client = new ClaimService(); // प्रॉपर्टी के माध्यम से इंजेक्शन
ConInjBusinessLogic.SetterInj();

सेटर इंजेक्शन के फायदे और नुकसान

फायदेनुकसान
सरल और समझने में आसानऑब्जेक्ट अवैध स्थिति में हो सकता है (निर्भरता सेट होने से पहले)
निर्भरता को बाद में बदला जा सकता हैकंस्ट्रक्टर इंजेक्शन की तुलना में कम स्पष्ट
वैकल्पिक निर्भरताओं के लिए उपयुक्तअपरिवर्तनीयता (immutability) का समर्थन नहीं करता

कब उपयोग करें

  • जब निर्भरता वैकल्पिक हो
  • जब निर्भरता को रनटाइम पर बदलने की आवश्यकता हो
  • लेगेसी कोड के साथ काम करते समय जहां कंस्ट्रक्टर इंजेक्शन संभव न हो
  1. Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें Java 9 में JavaFX का उपयोग करके JShell को प्रोग्रामेटिक रूप से लागू करें

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

  1. जावाएफएक्स का उपयोग करके QuadCurve कैसे बनाएं जावाएफएक्स का उपयोग करके QuadCurve कैसे बनाएं

    एक द्विघात वक्र (Quadratic curve) XY तल में डिग्री 2 का एक बेजियर पैरामीट्रिक वक्र है। जावाएफएक्स में, एक सर्कल को javafx.scene.shape.QuadCurve क्लास द्वारा दर्शाया जाता है। यह CubicCurve के समान है लेकिन 2 के बजाय, यह एक कंट्रोल पॉइंट का उपयोग करके खींचा जाता है। इस क्लास में 6 प्रॉपर्टीज हैं -

  1. जावाएफएक्स का उपयोग करके CubicCurve कैसे बनाएं जावाएफएक्स का उपयोग करके CubicCurve कैसे बनाएं

    एक घन वक्र (Cubic curve) दो चरों का तीसरी डिग्री का बहुपद फलन है। जावाएफएक्स में एक घन वक्र को javafx.scene.shape.CubicCurve क्लास द्वारा दर्शाया जाता है। इस क्लास में आठ प्रॉपर्टीज हैं - startX - यह प्रॉपर्टी वक्र के प्रारंभ बिंदु के x कोऑर्डिनेट को दर्शाती है। आप setStartX() मेथड का उपयोग करके इ