बिल्डर डिज़ाइन पैटर्न का उपयोग जटिल वस्तुओं को क्रमिक रूप से बनाने के लिए किया जाता है, जिससे एक ही निर्माण प्रक्रिया का उपयोग करके किसी वस्तु के विभिन्न प्रतिनिधित्वों के निर्माण की अनुमति मिलती है। इस लेख में, हम यह पता लगाएंगे कि गोलांग में बिल्डर पैटर्न को कैसे लागू किया जाए, इसके लाभों को समझें और उपयोग के एक व्यावहारिक उदाहरण का विश्लेषण करें।
बिल्डर पैटर्न एक जटिल वस्तु के निर्माण को उसके प्रतिनिधित्व से अलग करता है, जिससे एक ही निर्माण प्रक्रिया को अलग-अलग प्रतिनिधित्व बनाने की अनुमति मिलती है। यह विशेष रूप से तब उपयोगी होता है जब किसी ऑब्जेक्ट को कई चरणों में या कई संभावित कॉन्फ़िगरेशन के साथ बनाने की आवश्यकता होती है।
हमारे बिल्डर को लागू करने के लिए, आइए एक जटिल वस्तु की कल्पना करें जहां कई क्षेत्रों और यहां तक कि अन्य समूहीकृत वस्तुओं को आरंभ करना आवश्यक होगा। एक घर के बारे में क्या ख्याल है? जहां हमारे पास दो प्रकार का निर्माण होगा, एक पारंपरिक जिसमें कंक्रीट और ईंटों का उपयोग किया जाएगा, और दूसरा लकड़ी से बना होगा।
सबसे पहले, हमें उस वस्तु की संरचना को परिभाषित करने की आवश्यकता है जिसे हम बनाना चाहते हैं। जैसा कि पहले कहा गया था, हम एक घर बनाने जा रहे हैं। इस संरचना के अंदर हम वह सब रखेंगे जो इसे बनाने के लिए आवश्यक है।
// house.go package main type House struct { Foundation string Structure string Roof string Interior string }
अभी भी उसी फ़ाइल में, हम अपने बिल्डर इंटरफ़ेस को परिभाषित करेंगे जो सदन के विभिन्न हिस्सों के निर्माण के लिए आवश्यक तरीकों को निर्दिष्ट करता है।
//house.go package main type House struct { Foundation string Structure string Roof string Interior string } type HouseBuilder interface { SetFoundation() SetStructure() SetRoof() SetInterior() GetHouse() House }
आइए दो नई फ़ाइलें बनाएं, कंक्रीटहाउस और वुडहाउस। वे हाउसबिल्डर इंटरफ़ेस का अनुसरण करने वाले एक ठोस वर्ग का कार्यान्वयन करेंगे।
//concreteHouse.go package main type ConcreteHouseBuilder struct { house House } func (b *ConcreteHouseBuilder) SetFoundation() { b.house.Foundation = "Concrete, brick, and stone" } func (b *ConcreteHouseBuilder) SetStructure() { b.house.Structure = "Wood and brick" } func (b *ConcreteHouseBuilder) SetRoof() { b.house.Roof = "Concrete and reinforced steel" } func (b *ConcreteHouseBuilder) SetInterior() { b.house.Interior = "Gypsum board, plywood, and paint" } func (b *ConcreteHouseBuilder) GetHouse() House { return b.house }
//woodHouse.go package main type WoodHouseBuilder struct { house House } func (b *WoodHouseBuilder) SetFoundation() { b.house.Foundation = "Wooden piles" } func (b *WoodHouseBuilder) SetStructure() { b.house.Structure = "Wooden frame" } func (b *WoodHouseBuilder) SetRoof() { b.house.Roof = "Wooden shingles" } func (b *WoodHouseBuilder) SetInterior() { b.house.Interior = "Wooden panels and paint" } func (b *WoodHouseBuilder) GetHouse() House { return b.house }
निदेशक एक वर्ग है जो किसी वस्तु के निर्माण का प्रबंधन करता है, यह सुनिश्चित करता है कि निर्माण चरणों को सही क्रम में बुलाया गया है। यह विशिष्ट बिल्डर कार्यान्वयन के विवरण के बारे में कुछ नहीं जानता है, यह केवल अंतिम उत्पाद बनाने के लिए तार्किक क्रम में बिल्डर विधियों को कॉल करता है।
//director.go package main type Director struct { builder HouseBuilder } func (d *Director) Build() { d.builder.SetFoundation() d.builder.SetStructure() d.builder.SetRoof() d.builder.SetInterior() } func (d *Director) SetBuilder(b HouseBuilder) { d.builder = b }
अंत में, हम विभिन्न प्रकार के घर बनाने के लिए निदेशक और कंक्रीट बिल्डर्स का उपयोग करेंगे।
//main.go package main import ( "fmt" ) func main() { cb := &builder.ConcreteHouseBuilder{} director := builder.Director{Builder: cb} director.Build() concreteHouse := cb.GetHouse() fmt.Println("Concrete House") fmt.Println("Foundation:", concreteHouse.Foundation) fmt.Println("Structure:", concreteHouse.Structure) fmt.Println("Roof:", concreteHouse.Roof) fmt.Println("Interior:", concreteHouse.Interior) fmt.Println("-------------------------------------------") wb := &builder.WoodHouseBuilder{} director.SetBuilder(wb) director.Build() woodHouse := wb.GetHouse() fmt.Println("Wood House") fmt.Println("Foundation:", woodHouse.Foundation) fmt.Println("Structure:", woodHouse.Structure) fmt.Println("Roof:", woodHouse.Roof) fmt.Println("Interior:", woodHouse.Interior) }
बिल्डर पैटर्न जटिल वस्तुओं को वृद्धिशील और लचीले तरीके से बनाने का एक उपकरण है। गोलांग में, इस पैटर्न का कार्यान्वयन प्रत्यक्ष और प्रभावी है, जिससे मॉड्यूलर और आसानी से बनाए रखने वाले सिस्टम के निर्माण की अनुमति मिलती है। ठोस इंटरफेस और कक्षाओं का उपयोग करके, हम निर्माण तर्क को केंद्रीकृत कर सकते हैं और नई आवश्यकताएं सामने आने पर कोड विकास को सरल बना सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3