1. रणनीति पैटर्न क्या है

रणनीति पैटर्न एक व्यावहारिक डिज़ाइन पैटर्न है जो हमें विभिन्न स्थितियों के आधार पर विभिन्न ऍल्गोरिदम या व्यवहार को चुनने की अनुमति देता है। इसमें विभिन्न ऍल्गोरिदम को अलग-अलग रणनीति कक्षाओं में संक्षिप्त किया जाता है और इन रणनीति कक्षाओं को परिवर्तनीय बनाया जाता है। रणनीति पैटर्न का उपयोग करके, हम किसी ऑब्जेक्ट के व्यवहार को समय-समय पर बदल सकते हैं बिना सीधे ऑब्जेक्ट की संरचना को संशोधित किए।

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

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

  • रणनीति कक्षा स्वतंत्र रूप से बदल सकती है, नए रणनीति कक्षा जोड़ने से मूल कोड पर प्रभाव नहीं पड़ता, खुले-बंद नीति का पालन करता है।
  • ग्राहक आवश्यकतानुसार विभिन्न रणनीति को चुन सकते हैं, एक से एक जिम्मेदारी नीति का पालन करते हैं।
  • रणनीति पैटर्न पुनर्प्रयोगी ऍल्गोरिदम या व्यवहार प्रदान करता है, कोड की डुप्लिकेशन से बचाता है।
  • रणनीति पैटर्न कोड को संगठित करने का एक बेहतर तरीका प्रदान करता है, कोड को स्पष्ट और संभालने में आसान बनाता है।

3. रणनीति पैटर्न के व्यावसायिक अनुप्रयोग के उदाहरण

रणनीति पैटर्न निम्नलिखित क्षेत्रों में व्यापक रूप से प्रयोग किया जाता है:

  • विभिन्न भुगतान विधियां, जैसे एलीपे, वीचैट पे, इत्यादि।
  • विभिन्न क्रमबद्धी ऍल्गोरिदम, जैसे बबल सॉर्ट, क्विकसॉर्ट, इत्यादि।
  • विभिन्न लॉगिंग विधियां, जैसे कंसोल आउटपुट, फाइल आउटपुट, इत्यादि।

4. गोलैंग में रणनीति पैटर्न का कार्यान्वयन

इस खंड में, हम गोलैंग का उपयोग करके रणनीति पैटर्न को कार्यान्वित करेंगे और संबंधित उदाहरण, UML क्लास आरेख, और कोड टिप्पणियाँ प्रदान करेंगे।

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

निम्नलिखित गोलैंग में रणनीति पैटर्न का UML क्लास आरेख है:

Golang Strategy Pattern

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

उपरोक्त UML क्लास आरेख से हम रणनीति पैटर्न के तीन भूमिकाएँ देख सकते हैं: रणनीति इंटरफेस, ठोस रणनीति कक्षाएं (जैसे - तटस्थरणीति ए और तटस्थरणीति बी), और संदर्भ कक्ष संदर्भ

इस उदाहरण में, हम उपभोक्ता द्वारा भुगतान विधियों का चयन कॉंटेक्स्ट कक्ष के माध्यम से व्याख्या के रूप में व्यापार सिस्टम आर्डर के लिए विशेष रणनीति (तटस्थरणीति ए या तटस्थरणीति बी) का चयन करते हैं और फिर संदर्भ कक्ष की विधि को कॉल करते हैं।

4.3. कार्यान्वयन स्टेप 1: रणनीति इंटरफेस और ठोस रणनीति कक्षें परिभाषित करना

सबसे पहले, हमें एक रणनीति इंटरफेस रणनीति परिभाषित करनी होगी, जिसमें निर्दिष्ट रणनीति को क्रियान्वित करने के लिए क्रिया(डेटा इंटरफेस{}) स्ट्रिंग विधि शामिल है।

type Strategy interface {
    Execute(data interface{}) string
}

type ConcreteStrategyA struct{}

func (s *ConcreteStrategyA) Execute(data interface{}) string {
    // विशिष्ट रणनीति ए को क्रियान्वित करने के लिए क्रियात्मकता
}

type ConcreteStrategyB struct{}

func (s *ConcreteStrategyB) Execute(data interface{}) string {
    // विशिष्ट रणनीति बी को क्रियान्वित करने के लिए क्रियात्मकता
}

4.4. कार्यान्वयन स्टेप 2: संदर्भ कक्ष का कार्यान्वयन करना

अगली, हमें संदर्भ कक्ष संदर्भ को कार्यान्वित करना होगा, जो विशिष्ट रणनीति ऑब्जेक्ट को संक्षेपित करता है, और रणनीति ऑब्जेक्ट सेट करने के लिए सेटरजनीति(रणनीति रणनीति) विधि प्रदान करता है, साथ ही क्रियान्वितरणनीति(डेटा इंटरफेस{}) स्ट्रिंग विधि प्रदान करता है।

type Context struct {
    strategy Strategy
}

func (c *Context) SetStrategy(strategy Strategy) {
    c.strategy = strategy
}

func (c *Context) ExecuteStrategy(data interface{}) string {
    if c.strategy == nil {
        // डिफ़ॉल्ट रणनीति क्रियान्वित
    } else {
        return c.strategy.Execute(data)
    }
}

4.5. कार्यान्वयन स्टेप 3: रणनीति पैटर्न का उपयोग करके वास्तविक व्यावसायिक तर्क को पूरा करना

अंत में, हम ग्राहक में रणनीति पैटर्न का उपयोग कर सकते हैं वास्तविक व्यावसायिक तर्क को पूरा करने के लिए।

func main() {
    context := &Context{}

    //सेटरजनीति विधि का प्रयोग करके विशिष्ट रणनीति ए को सेट करें
    context.SetStrategy(&ConcreteStrategyA{})
    result := context.ExecuteStrategy("एलीपे भुगतान")

    //सेटरजनीति विधि का प्रयोग करके विशिष्ट रणनीति बी को सेट करें
    context.SetStrategy(&ConcreteStrategyB{})
    result = context.ExecuteStrategy("वीचैट भुगतान")
}

निष्कर्ष

ऊपर के उदाहरण कोड के माध्यम से, हमने गोलैंग में रणनीति पैटर्न को कैसे कार्यान्वित करना है, यह सीखा। रणनीति पैटर्न हमें विभिन्न स्थितियों के आधार पर विभिन्न ऍल्गोरिदम या व्यवहार चुनने में मदद करता है, और यह कोड को संगठित करने का एक बेहतर तरीका प्रदान करता है, जिससे कोड स्पष्ट और संभालने में आसान बनता है। व्यावसायिक विकास में, राजनीतिक पैटर्न का सही तरीके से उपयोग करके कोड की स्केलेबिलिटी और संभालने को प्रभावी ढंग से बढ़ा सकता है।