1. टेम्पलेट मेथड पैटर्न क्या है

सॉफ्टवेयर विकास में, टेम्पलेट मेथड पैटर्न एक व्यावहारिक डिज़ाइन पैटर्न है जो किसी एल्गोरिदम की खांजन बनाता है और कुछ कदमों को उप-कक्षाओं में लागू करता है। इससे उप-कक्षाएँ एल्गोरिदम की संरचना बदले बिना खुद के विशेष कदमों को अपने व्यवहार को सहायता प्रदान कर सकती हैं।

2. टेम्पलेट मेथड पैटर्न की विशेषताएँ और फायदे

टेम्पलेट मेथड पैटर्न की विशेषताएँ और फायदे इस प्रकार हैं:

  • किसी एल्गोरिदम की खांजन बनाता है और विशेष कदमों की अंमलन को उप-कक्षाओं में विलंबित करता है।
  • उप-कक्षाओं को एल्गोरिदम की संरचना बदले बिना निश्चित कदमों को पुनर्निर्धारित करने की अनुमति देता है।
  • एल्गोरिदम को संरचनिक विवरणों से स्वतंत्र बनाने का एक तरीका प्रदान करता है।
  • कोड की डुप्लिकेशन को कम करता है और कोड की पुनर्विद्यमानता को बढ़ाता है।

3. टेम्पलेट मेथड पैटर्न के व्यावहारिक अनुप्रयोग के उदाहरण

टेम्पलेट मेथड पैटर्न का सॉफ़्टवेयर विकास में कई व्यावहारिक अनुप्रयोग हैं। कुछ मामूली उदाहरण शामिल हैं:

  • फ्रेमवर्क में हुक पदक: हुक पदक कुछ एल्गोरिदम के निश्चित कदमों पर विस्तार स्थल प्रदान करते हैं, जिससे वे आवश्यक होने पर विस्तार कर सकती हैं।
  • डेटाबेस प्रक्रियाओं के लिए टेम्पलेट मेथड: उदाहरण के लिए, डेटाबेस प्रक्रियाओं में कनेक्टिंग, ट्रांजैक्शन खोलना, एसक्यूएल वाक्य निष्पादित करना, कनेक्शन बंद करना, आदि, को टेम्पलेट मेथड्स के रूप में संक्षेपित किया जा सकता है ताकि उप-कक्षाएँ इसे अंमल कर सकें।
  • GUI एप्‍लीकेशन में घटना संचालन: GUI एप्‍लीकेशन में घटना संचालन अक्सर निश्चित नियमों और प्रक्रियाओं का पालन करता है, जो टेम्पलेट मेथड पैटर्न का उपयोग करके लागू किया जा सकता है।

4. जीओलैंग में टेम्पलेट मेथड पैटर्न का कार्यान्वयन

4.1. UML क्लास आरेख

जीओलैंग में टेम्पलेट मेथड पैटर्न

4.2. उदाहरण परिचय

टेम्पलेट मेथड पैटर्न के उदाहरण में, एक अंतर्क्षीण कक्षा AbstractClass है, जिसमें एक टेम्पलेट मेथड TemplateMethod और कुछ अंतर्क्षीण मेथड AbstractMethod1 और AbstractMethod2 शामिल हैं। Concrete subclasses ConcreteClass1 और ConcreteClass2 AbstractClass से इन्हेरिट करती हैं और विशेष अंतर्क्षीण मेथड को अंमल करती हैं।

4.3. कार्यान्वयन स्टेप 1: अंतर्क्षीण टेम्पलेट कक्षा की परिभाषा करें

सबसे पहले, हमें एक अंतर्क्षीण टेम्पलेट कक्षा AbstractClass परिभाषित करनी होगी, जिसमें टेम्पलेट मेथड और अंतर्क्षीण मेथड घोषित किए जाते हैं।

package main

import "fmt"

type AbstractClass interface {
	TemplateMethod()
	AbstractMethod1()
	AbstractMethod2()
	ConcreteMethod()
}

type BaseClass struct{}

func (b *BaseClass) TemplateMethod() {
	b.AbstractMethod1()
	b.AbstractMethod2()
	b.ConcreteMethod()
}

func (b *BaseClass) ConcreteMethod() {
	fmt.Println("Executing concrete method")
}

4.4. कार्यान्वयन स्टेप 2: विशेष टेम्पलेट कक्षाओं का अंमलन

अगले, हमें विशेष टेम्पलेट कक्षाएँ, जैसे ConcreteClass1 और ConcreteClass2, बनानी होगी और इन कक्षाओं में अंतर्क्षीण मेथडों को अंमल करना होगा।

type ConcreteClass1 struct {
	*BaseClass
}

func NewConcreteClass1() *ConcreteClass1 {
	return &ConcreteClass1{
		&BaseClass{},
	}
}

func (c *ConcreteClass1) AbstractMethod1() {
	fmt.Println("Executing method1 of ConcreteClass1")
}

func (c *ConcreteClass1) AbstractMethod2() {
	fmt.Println("Executing method2 of ConcreteClass1")
}

type ConcreteClass2 struct {
	*BaseClass
}

func NewConcreteClass2() *ConcreteClass2 {
	return &ConcreteClass2{
		&BaseClass{},
	}
}

func (c *ConcreteClass2) AbstractMethod1() {
	fmt.Println("Executing method1 of ConcreteClass2")
}

func (c *ConcreteClass2) AbstractMethod2() {
	fmt.Println("Executing method2 of ConcreteClass2")
}

4.5. कार्यान्वयन स्टेप 3: अंतर्क्षीण और स्थिर मेथड की परिभाषा करना

अंतर्क्षीण टेम्पलेट कक्षा में, हमें कुछ अंतर्क्षीण मेथड और स्थिर मेथडों को परिभाषित करना होगा। अंतर्क्षीण मेथडें विशिष्ट उपकक्षाओंद्वारा अंमल की जाती हैं, और स्थिर मेथडें टेम्पलेट मेथड में बुलाई जाती हैं।

4.6. कार्यान्वयन स्टेप 4: टेम्पलेट मेथड का उपयोग करने वाला ग्राहक

अंत में, हम ग्राहक कोड में टेम्पलेट मेथड का उपयोग कर सकते हैं ताकि विशिष्ट व्यावसायिक तार्किक अंमल किया जा सके।

func main() {
	class1 := NewConcreteClass1()
	class1.TemplateMethod()

	class2 := NewConcreteClass2()
	class2.TemplateMethod()
}

4.7. क्रियान्वयन चरण 5: क्रियान्वयन परिणाम

जब हम ऊपर दिए गए कोड को चलाते हैं, तो हमें निम्नलिखित आउटपुट मिलेगा:

ConcreteClass1 का method1 क्रियान्वित किया जा रहा है
ConcreteClass1 का method2 क्रियान्वित किया जा रहा है
प्राकृतिक method क्रियान्वित किया जा रहा है
ConcreteClass2 का method1 क्रियान्वित किया जा रहा है
ConcreteClass2 का method2 क्रियान्वित किया जा रहा है
प्राकृतिक method क्रियान्वित किया जा रहा है

ऊपर दिया गया है गोलांग में टेम्पलेट मेथड पैटर्न का क्रियान्वयन और उपयोग उदाहरण। टेम्पलेट मेथड पैटर्न का उपयोग करके, हम कुछ सामान्य व्यवहारों को एक अंशक हस्तांतरण में बंधने के लिए सक्षम होते हैं और विशेष उप-श्रेणियों को उनके विशिष्ट व्यवहारों का अंगीकरण करने की अनुमति देते हैं, जिससे कोड की पुनर्गुणवत्ता और विस्तारयोग्यता में सुधार होती है।

संपादन

इस ट्यूटोरियल ने गोलांग में टेम्पलेट मेथड पैटर्न को पेश किया है, जिसमें पैटर्न की परिभाषा, विशेषताएँ, और अनुप्रयोग स्थितियाँ शामिल हैं, और एक क्रियान्वयन उदाहरण प्रदान किया गया है। इस उदाहरण के माध्यम से, हम स्पष्ट रूप से गोलांग में टेम्पलेट मेथड पैटर्न के विशिष्ट क्रियान्वयन और उपयोग को समझ सकते हैं।