C# Language
डेकोरेटर डिजाइन पैटर्न को लागू करना
खोज…
टिप्पणियों
डेकोरेटर का उपयोग करने के नियम:
- आप अलग-अलग कॉन्फ़िगरेशन में रनटाइम पर नई कार्यक्षमता जोड़ सकते हैं
- वंशानुक्रम के लिए अच्छा विकल्प
- ग्राहक वह कॉन्फ़िगरेशन चुन सकता है जिसका वह उपयोग करना चाहता है
कैफेटेरिया का अनुकरण
डेकोरेटर संरचनात्मक डिजाइन पैटर्न में से एक है। इसका उपयोग वस्तु के व्यवहार को जोड़ने, हटाने या बदलने के लिए किया जाता है। यह दस्तावेज़ आपको सिखाएगा कि डेकोरेटर डीपी का सही उपयोग कैसे करें।
मुझे इसका उदाहरण एक सरल उदाहरण पर समझाता हूं। कल्पना कीजिए कि आप अब स्टारबब्स में हैं, जो प्रसिद्ध कॉफी कंपनी है। आप अपनी इच्छानुसार किसी भी कॉफी के लिए ऑर्डर दे सकते हैं - क्रीम और चीनी के साथ, क्रीम और टॉपिंग के साथ और भी बहुत सारे संयोजन! लेकिन, सभी पेय का आधार कॉफी है - अंधेरे, कड़वा पेय, आप संशोधित कर सकते हैं। चलो एक साधारण प्रोग्राम लिखते हैं जो कॉफी मशीन का अनुकरण करता है।
सबसे पहले, हमें अपने बेस ड्रिंक का वर्णन करने वाले एब्सट्रैक्ट क्लास बनाने और बनाने की जरूरत है:
public abstract class AbstractCoffee
{
protected AbstractCoffee k = null;
public AbstractCoffee(AbstractCoffee k)
{
this.k = k;
}
public abstract string ShowCoffee();
}
अब, चीनी, दूध और टॉपिंग जैसे कुछ एक्स्ट्रास बनाएं। बनाया गया वर्गों को लागू करना चाहिए AbstractCoffee
- वे इसे सजाने होगा:
public class Milk : AbstractCoffee
{
public Milk(AbstractCoffee c) : base(c) { }
public override string ShowCoffee()
{
if (k != null)
return k.ShowCoffee() + " with Milk";
else return "Milk";
}
}
public class Sugar : AbstractCoffee
{
public Sugar(AbstractCoffee c) : base(c) { }
public override string ShowCoffee()
{
if (k != null) return k.ShowCoffee() + " with Sugar";
else return "Sugar";
}
}
public class Topping : AbstractCoffee
{
public Topping(AbstractCoffee c) : base(c) { }
public override string ShowCoffee()
{
if (k != null) return k.ShowCoffee() + " with Topping";
else return "Topping";
}
}
अब हम अपनी पसंदीदा कॉफी बना सकते हैं:
public class Program
{
public static void Main(string[] args)
{
AbstractCoffee coffee = null; //we cant create instance of abstract class
coffee = new Topping(coffee); //passing null
coffee = new Sugar(coffee); //passing topping instance
coffee = new Milk(coffee); //passing sugar
Console.WriteLine("Coffee with " + coffee.ShowCoffee());
}
}
कोड चलाने से निम्न आउटपुट का उत्पादन होगा:
दूध के साथ चीनी के साथ टॉपिंग के साथ कॉफी