1. ब्रिज पैटर्न क्या है
1.1 परिभाषा और अवधारणा
ब्रिज पैटर्न, जिसे ब्रिज पैटर्न के रूप में भी जाना जाता है, एक प्रकार का संरचनात्मक डिज़ाइन पैटर्न है जो अनुपस्थिति और कार्यान्वयन को अलग करता है, जो उन्हें स्वतंत्र रूप से बदलने की अनुमति देता है। सरल शब्दों में, ब्रिज पैटर्न एक समाधान है जो अनुपस्थिति को कार्यान्वयन से अलग करता है।
1.2 ब्रिज पैटर्न का उद्देश्य और प्रभाव
ब्रिज पैटर्न का मुख्य उद्देश्य अनुपस्थिति भाग को उसके कार्यान्वयन भाग से अलग करना है ताकि वे स्वतंत्र रूप से बदल सकें और विस्तार कर सकें। इसे एक सारणी ब्रिज कक्षा स्थापित करके प्राप्त किया जाता है जो एक कन्क्रीट कार्यान्वयन कक्षा से जुड़ी है।
2. ब्रिज पैटर्न की विशेषताएँ और फायदे
ब्रिज पैटर्न की कुछ मुख्य विशेषताएँ और फायदे निम्नलिखित हैं:
- वृद्धि योग्य तंत्र स्केलेबिलिटी। अनुपस्थिति और कार्यान्वयन दोनों स्वतंत्र रूप से विस्तारित किए जा सकते हैं बिना एक-दूसरे पर प्रभाव डाले।
- खुला/बंद सिद्धांत की अनुपालना। अनुपस्थिति भाग और कार्यान्वयन भाग एक-दूसरे पर प्रभाव नहीं डालते हुए स्वतंत्र रूप से विस्तार किए जा सकते हैं।
- प्रयोक्ता को कार्यान्वयन विवरण की पारदर्शिता, जिससे प्रयोक्ता से कार्यान्वयन विवरण छिपाए जा सकते हैं।
3. ब्रिज पैटर्न के अनुप्रयोग क्षेत्र
- जब आप एक जटिल वस्तु के कार्यान्वयन को उसकी अनुपस्थिति से अलग करना चाहते हैं, तो ब्रिज पैटर्न का उपयोग किया जा सकता है। यह मौजूदा कोड के प्रदर्शन पर अच्छा प्रभाव डाल सकता है, खासकर जब कार्यक्रम केवल रनटाइम में वस्तु का एक हिस्सा ही उपयोग करता है।
- जब आपको एकाधिक वस्तुओं के बीच में विशिष्ट कार्यान्वयन स्थितियों को साझा करने की आवश्यकता होती है, लेकिन प्रयोक्ता को वे स्वतंत्र कक्षाएँ प्रतीत होनी चाहिए।
4. Golang में ब्रिज पैटर्न का कार्यान्वयन
4.1 UML कक्षा डायग्राम का परिचय
4.2 विस्तृत कार्यान्वयन चरण
4.2.1 सारणी भूमिका का निर्धारण
सबसे पहले, हम एक DrawAPI इंटरफेस का परिभाषा करते हैं, विशिष्ट कोड निम्नलिखित है:
// सारणी भूमिका इंटरफेस
type DrawAPI interface {
DrawACircle(radius, x, y int)
}
4.2.2 कार्यान्वित करें कन्क्रीट भूमिका क्कषा
फिर, हम दो कक्षाएँ परिभाषित करते हैं, रेडसर्कल और ब्लूसर्कल, जो DrawAPI इंटरफेस में विधियों को कार्यान्वित करते हैं:
// कार्यान्वित करें कन्क्रीट भूमिका क्कषा
type RedCircle struct {}
func (c *RedCircle) DrawACircle(radius, x, y int) {
// लाल गोलाकार बनाने की तर्कसंगतता
}
type BlueCircle struct {}
func (c *BlueCircle) DrawACircle(radius, x, y int) {
// नीला गोलाकार बनाने की तर्कसंगतता
}
4.2.3 अंतर्फलक भूमिका इंटरफेस का परिभाषण
आयतन ब्रिज इंटरफेस की परिभाषा:
// अंतर्फलक इंटरफेस
type Shape interface {
Draw()
}
4.2.4 कार्यान्वित करें कन्क्रीट ब्रिज कक्षा
आयतन सर्कल कक्षा को कार्यान्वित करें, जो आयतन उप-भूमिका को कार्यान्वित करता है और एक DrawAPI इंटरफेस के प्रकार की वस्तु रखता है:
// कार्यान्वित करें कन्क्रीट ब्रिज कक्षा
type Circle struct {
x, y, radius int
drawAPI DrawAPI
}
func (c *Circle) Draw() {
c.drawAPI.DrawACircle(c.radius, c.x, c.y)
}
4.2.5 प्रयोक्ता आवंटन उदाहरण
func main() {
redCircle := &Circle{100, 100, 10, new(RedCircle)}
blueCircle := &Circle{100, 100, 10, new(BlueCircle)}
redCircle.Draw()
blueCircle.Draw()
}
इस तरह, हमने Golang में ब्रिज पैटर्न का कार्यान्वयन किया है।