जैसे-जैसे अनुप्रयोग आकार और जटिलता में बढ़ते हैं, उप-प्रणालियों के बीच अन्योन्याश्रितता को प्रबंधित करना चुनौतीपूर्ण हो सकता है। एक मुखौटा डिजाइन पैटर्न इस बातचीत को सरल करता है और एक सबसिस्टम में इंटरफेस के एक सेट के लिए एक एकीकृत इंटरफ़ेस प्रदान करता है।
एक ऑनलाइन शॉपिंग एप्लिकेशन पर विचार करें जो ग्राहकों को उत्पादों को ब्राउज़ करने, उन्हें कार्ट में जोड़ने और चेकआउट करने की अनुमति देता है। एप्लिकेशन में अन्य भागों, जैसे इन्वेंट्री, भुगतान और शिपिंग सिस्टम के प्रबंधन के लिए जिम्मेदार विभिन्न सबसिस्टम हैं। इन सबसिस्टम में अलग-अलग इंटरफेस होते हैं और खरीदारी पूरी करने के लिए एक दूसरे के साथ संवाद करने की आवश्यकता होती है।
समस्या यह है कि सबसिस्टम के बीच इस संचार को प्रबंधित करना कठिन हो सकता है क्योंकि एप्लिकेशन बढ़ता है। एक सबसिस्टम में परिवर्तन का अन्य सबसिस्टम पर व्यापक प्रभाव हो सकता है, जिससे एक पेचीदा और कठिन-से-बनाए रखने वाला कोडबेस हो सकता है।
सबसिस्टम के बीच बातचीत को आसान बनाने के लिए हम मुखौटा डिजाइन पैटर्न का उपयोग कर सकते हैं। एक मुखौटा पैटर्न एक सबसिस्टम को एक एकल प्रवेश बिंदु प्रदान करता है, जो क्लाइंट से इसकी जटिलता को छुपाता है। हमारे उदाहरण में, हम एक मुखौटा बना सकते हैं जो इन्वेंट्री, भुगतान और शिपिंग सबसिस्टम को एक एकीकृत इंटरफ़ेस प्रदान करता है।
लेख सी # प्रोग्रामिंग भाषा का उपयोग करके मुखौटा डिजाइन पैटर्न प्रदर्शित करता है।
public interface IInventorySystem { void Update(int productId, int quantity); bool IsAvailable(int productId, int quantity); } public interface IPaymentSystem { bool Charge(double amount); } public interface IShippingSystem { bool Ship(string address); }
अगला, हम सबसिस्टम को लागू कर सकते हैं:
public class InventorySystem : IInventorySystem { public void Update(int productId, int quantity) { // update inventory } public bool IsAvailable(int productId, int quantity) { // check if inventory is available return true; } } public class PaymentSystem : IPaymentSystem { public bool Charge(double amount) { // charge the customer return true; } } public class ShippingSystem : IShippingSystem { public bool Ship(string address) { // ship the product return true; } }
अंत में, हम एक मुखौटा बना सकते हैं जो इन सबसिस्टमों को एक सरल इंटरफ़ेस प्रदान करता है:
public class OrderFacade { private IInventorySystem _inventorySystem; private IPaymentSystem _paymentSystem; private IShippingSystem _shippingSystem; public OrderFacade() { _inventorySystem = new InventorySystem(); _paymentSystem = new PaymentSystem(); _shippingSystem = new ShippingSystem(); } public bool PlaceOrder(int productId, int quantity, double amount, string address) { bool success = true; if (_inventorySystem.IsAvailable(productId, quantity)) { _inventorySystem.Update(productId, -quantity); success = success && _paymentSystem.Charge(amount); success = success && _shippingSystem.Ship(address); } else { success = false; } return success; } }
OrderFacade
क्लास में, हम सबसिस्टम के उदाहरण बनाते हैं और PlaceOrder
एक सरल विधि प्रदान करते हैं जो उत्पाद आईडी, मात्रा, राशि और शिपिंग पते को लेती है। PlaceOrder
तकनीक इन्वेंट्री की जांच करने, ग्राहक को चार्ज करने और उत्पाद को शिप करने के लिए सबसिस्टम का उपयोग करती है।
मुखौटा पैटर्न के साथ, क्लाइंट कोड OrderFacade
क्लास का एक उदाहरण बना सकता है और सबसिस्टम के ब्योरे के बारे में चिंता किए बिना PlaceOrder
विधि को कॉल कर सकता है।
var order = new OrderFacade(); bool success; // place an order success = order.PlaceOrder(productId: 123, quantity: 1, amount: 99.99, address: "123 Main St"); if (success) { Console.WriteLine("Order placed successfully"); } else { Console.WriteLine("Unable to place order"); }
इस उदाहरण में, हमने ऑनलाइन शॉपिंग एप्लिकेशन में सबसिस्टम के बीच बातचीत को आसान बनाने के लिए मुखौटा पैटर्न का इस्तेमाल किया है। क्लाइंट कोड को केवल `ऑर्डरफैकेड` वर्ग के साथ इंटरैक्ट करने की आवश्यकता है और उसे इन्वेंट्री, भुगतान और शिपिंग सबसिस्टम के बारे में जानने की आवश्यकता नहीं है।
मुखौटा डिजाइन पैटर्न सबसिस्टम के बीच बातचीत को सरल करता है और सबसिस्टम में इंटरफेस के एक सेट के लिए एक एकीकृत इंटरफ़ेस प्रदान करता है। यह युग्मन को कम करने और बड़े और जटिल अनुप्रयोगों की रखरखाव क्षमता में सुधार करने में मदद कर सकता है। यह आलेख उपयोग केस और कोड उदाहरणों के साथ सी # में मुखौटा डिजाइन पैटर्न की पड़ताल करता है। मुखौटा पैटर्न का उपयोग करके, हम कोडबेस को सरल बना सकते हैं और इसे बनाए रखना और विस्तार करना आसान बना सकते हैं।
पढ़ने के लिए धन्यवाद, और मुझे आशा है कि आपको लेख पसंद आया होगा। कृपया टिप्पणी अनुभाग में अपनी प्रतिक्रिया दें।
सी # प्रकाशन , देव। to , Pinterest , Substack , Hashnode , Write.as