1. फैसाड पैटर्न क्या है
फैसाड पैटर्न एक संरचनात्मक डिज़ाइन पैटर्न है जो एक उपप्रणाली में सेट के इंटरफ़ेस को एकीकृत करने के लिए एक संगठित इंटरफ़ेस प्रदान करता है। यह उपप्रणाली की जटिलता को छुपाता है और बाहरी तक सरलीकृत इंटरफ़ेस प्रदान करता है।
2. फैसाड पैटर्न की विशेषताएँ और फायदे
फैसाड पैटर्न की निम्नलिखित विशेषताएँ और फायदे हैं:
- इससे सरलीकृत इंटरफ़ेस प्रदान करता है, जिससे उपप्रणाली का उपयोग करना आसान हो जाता है।
- यह ग्राहक और उपप्रणाली के बीच कप्लिंग को कम करता है। ग्राहक को केवल फैसाड कक्षा के साथ बातचीत करनी होती है बिना उपप्रणाली के विशेष अंमलन विवरण को समझने की आवश्यकता पड़ती है।
- यह 'खुला/बना रहने का सिद्धांत' का पालन करता है और उपप्रणाली में सुविधाजनक रूप से और बदलाव या जोड़ने की सुविधा प्रदान करता है।
3. फैसाड पैटर्न के व्यावसायिक अनुप्रयोग के उदाहरण
फैसाड पैटर्न का व्यावसायिक अनुप्रयोग में व्यापक रूप से उपयोग होता है, जैसे:
- जटिल तीसरे पक्ष की लाइब्रेरी या API तक पहुंच के लिए सरलीकृत इंटरफ़ेस प्रदान करना।
- एक समृद्ध तर्क क्रियाएँ सरल बनाने के लिए एक समूह को कपड़ों में छिपाना।
- एक मौजूदा सिस्टम के लिए अन्य सिस्टमों के साथ एकीकरण के लिए एक सरल इंटरफ़ेस प्रदान करना।
4. गोलैंग में फैसाड पैटर्न का अंमलन
4.1. UML क्लास डायग्राम
4.2. उदाहरण परिचय
इस उदाहरण में, चलो मानें कि एक ई-कॉमर्स प्लेटफ़ॉर्म है जिसमें आर्डर प्रबंधन, इन्वेंटरी प्रबंधन, और भुगतान प्रणालियाँ शामिल हैं। आर्डर प्रबंधन प्रणाली आर्डर बनाने और आर्डर की क्वेरी करने जैसे फ़ंक्शनों के लिए जिम्मेदार है, इन्वेंटरी प्रबंधन प्रणाली उत्पाद की इंवेंटरी की क्वेरी और इंवेंटरी को कम करने के लिए जिम्मेदार है, और भुगतान प्रणाली आर्डर भुगतान प्रसंस्करण के लिए जिम्मेदार है। ग्राहक और उपप्रणालियों के बीच संवाद को सरल बनाने के लिए, हम इन प्रणालियों की इंटरफ़ेस डिज़ाइन करने के लिए फैसाड पैटर्न का उपयोग कर सकते हैं।
4.3. अंमलन कदम 1: फैसाड कक्षा की परिभाषा करें
type Facade struct {
subsystemA *SubsystemA
subsystemB *SubsystemB
subsystemC *SubsystemC
}
func NewFacade() *Facade {
return &Facade{
subsystemA: NewSubsystemA(),
subsystemB: NewSubsystemB(),
subsystemC: NewSubsystemC(),
}
}
func (f *Facade) Operation() {
f.subsystemA.OperationA()
f.subsystemB.OperationB()
f.subsystemC.OperationC()
}
4.4. अंमलन कदम 2: सब-प्रणाली कक्षाओं की परिभाषा करें
type SubsystemA struct {}
func NewSubsystemA() *SubsystemA {
return &SubsystemA{}
}
func (s *SubsystemA) OperationA() {
// सब-प्रणाली A कार्य के लिए लॉज़िक
}
type SubsystemB struct {}
func NewSubsystemB() *SubsystemB {
return &SubsystemB{}
}
func (s *SubsystemB) OperationB() {
// सब-प्रणाली B कार्य के लिए लॉज़िक
}
type SubsystemC struct {}
func NewSubsystemC() *SubsystemC {
return &SubsystemC{}
}
func (s *SubsystemC) OperationC() {
// सब-प्रणाली C कार्य के लिए लॉज़िक
}
4.5. अंमलन कदम 3: फैसाड पैटर्न का उपयोग करके ग्राहक कोड का अंमलन करें
func main() {
facade := NewFacade()
facade.Operation()
}