AI-Generated Video Summary by NoteTube

Strategy Design Pattern Explained with Real-World Example | Design Patterns in LLD
Coder Army
Overview
यह वीडियो एलएलडी (LLD) में स्ट्रेटेजी डिज़ाइन पैटर्न को समझाता है। यह बताता है कि डिज़ाइन पैटर्न क्या होते हैं और क्यों उनका उपयोग किया जाता है। वीडियो में इनहेरिटेंस की समस्याओं को उजागर किया गया है, खासकर जब कोड को बार-बार दोहराना पड़ता है या जब जटिल इनहेरिटेंस हायरार्की बनती है। फिर, यह स्ट्रेटेजी डिज़ाइन पैटर्न को पेश करता है, जो एल्गोरिदम के परिवारों को अलग-अलग क्लासेस में रखकर रनटाइम पर उन्हें बदलने की अनुमति देता है। रोबोट सिमुलेशन के एक रियल-वर्ल्ड उदाहरण का उपयोग करके, वीडियो दिखाता है कि कैसे कंपोजीशन इनहेरिटेंस पर बेहतर है और कैसे यह पैटर्न कोड को अधिक लचीला और बनाए रखने में आसान बनाता है। अंत में, यह पेमेंट सिस्टम और सॉर्टिंग एल्गोरिदम जैसे अन्य वास्तविक दुनिया के अनुप्रयोगों पर चर्चा करता है और पैटर्न के लिए एक मानक यूएमएल डायग्राम प्रदान करता है।
This summary expires in 30 days. Save it permanently with flashcards, quizzes & AI chat.
Chapters
- •डिज़ाइन पैटर्न सामान्य समस्याओं के समाधान हैं जिन्हें डेवलपर्स ने पहले ही ढूंढ लिया है।
- •एप्लीकेशन को लचीला बनाने के लिए नए फीचर्स को कम से कम कोड बदलावों के साथ इंटीग्रेट करने की आवश्यकता होती है।
- •डिज़ाइन पैटर्न, ऑब्जेक्ट-ओरिएंटेड सिद्धांत और सॉलिड सिद्धांत एप्लीकेशन को बेहतर और अधिक विकसित करने योग्य बनाने में मदद करते हैं।
- •परिवर्तन ही एकमात्र स्थिरांक है, इसलिए डिज़ाइन को हमेशा बदलते रहने वाली एप्लीकेशन के अनुकूल होना चाहिए।
- •इनहेरिटेंस कोड रीयूज़ में मदद करता है लेकिन जटिलता पैदा कर सकता है।
- •जब कई रोबोट्स में समान व्यवहार (जैसे फ्लाई) होता है, तो कोड को बार-बार कॉपी-पेस्ट करना पड़ता है, जो DRY (Do Not Repeat Yourself) सिद्धांत का उल्लंघन करता है।
- •इनहेरिटेंस हायरार्की को बढ़ाने से कोड और अधिक जटिल हो जाता है, खासकर जब विभिन्न व्यवहारों के कई संयोजन होते हैं।
- •इनहेरिटेंस को हल करने के लिए अधिक इनहेरिटेंस का उपयोग करना एक अच्छा समाधान नहीं है।
- •स्ट्रेटेजी पैटर्न एल्गोरिदम के परिवारों को परिभाषित करता है और उन्हें अलग-अलग क्लासेस में रखता है ताकि उन्हें रनटाइम पर बदला जा सके।
- •यह पैटर्न उन हिस्सों को अलग करता है जो बदलते हैं (एल्गोरिदम) उन हिस्सों से जो नहीं बदलते।
- •इनहेरिटेंस के बजाय कंपोजीशन का उपयोग किया जाता है, जिससे 'हैज़-ए' रिलेशनशिप बनता है।
- •क्लाइंट (जैसे रोबोट क्लास) स्ट्रेटेजी (जैसे टॉकेबल, वॉकेबल, फ्लायबल) का उपयोग करता है और रनटाइम पर व्यवहार को डायनामिक रूप से बदल सकता है।
- •रोबोट क्लास में वॉक, टॉक और फ्लाई जैसे व्यवहारों को अलग-अलग इंटरफेस (स्ट्रेटेजी) में निकाला जाता है।
- •प्रत्येक व्यवहार के लिए कंक्रीट कार्यान्वयन (जैसे नॉर्मल वॉक, नो वॉक) बनाए जाते हैं।
- •रोबोट क्लास इन स्ट्रेटेजीज़ को कंपोजीशन के माध्यम से उपयोग करती है।
- •रनटाइम पर, विभिन्न स्ट्रेटेजीज़ को पास करके रोबोट के व्यवहार को आसानी से बदला जा सकता है।
- •प्रोजेक्शन जैसे व्यवहारों को भी स्ट्रेटेजी पैटर्न का उपयोग करके कंपोजीशन के माध्यम से संभाला जा सकता है।
- •यह इनहेरिटेंस की आवश्यकता को पूरी तरह से समाप्त कर देता है और कोड को और अधिक लचीला बनाता है।
- •क्लाइंट क्लास (रोबोट) अब पूरी तरह से डंब हो जाती है और सभी कार्य स्ट्रेटेजीज़ को सौंप देती है।
- •स्टैंडर्ड यूएमएल डायग्राम में क्लाइंट, स्ट्रेटेजी (एब्स्ट्रैक्ट क्लास/इंटरफ़ेस), और कंक्रीट स्ट्रेटेजीज़ शामिल हैं।
- •क्लाइंट का स्ट्रेटेजी के साथ 'हैज़-ए' रिलेशनशिप होता है।
- •रियल-वर्ल्ड उदाहरणों में पेमेंट सिस्टम (UPI, कार्ड, नेट बैंकिंग) और सॉर्टिंग एल्गोरिदम (क्विक सॉर्ट, मर्ज सॉर्ट) शामिल हैं।
- •स्ट्रेटेजी पैटर्न ओपन-क्लोज सिद्धांत का भी समर्थन करता है, जिससे मौजूदा कोड को बदले बिना नए व्यवहार जोड़े जा सकते हैं।
Key Takeaways
- 1डिज़ाइन पैटर्न सामान्य सॉफ़्टवेयर डिज़ाइन समस्याओं के लिए पुन: प्रयोज्य समाधान हैं।
- 2इनहेरिटेंस जटिलता पैदा कर सकता है; कंपोजीशन अक्सर एक बेहतर विकल्प होता है।
- 3स्ट्रेटेजी पैटर्न आपको रनटाइम पर एल्गोरिदम बदलने की अनुमति देता है, जिससे आपका कोड अधिक लचीला बनता है।
- 4यह पैटर्न कोड को अलग-अलग व्यवहारों (स्ट्रेटेजीज़) में विभाजित करता है, जिससे रखरखाव और विस्तार आसान हो जाता है।
- 5कंपोजीशन का उपयोग करके, आप इनहेरिटेंस हायरार्की की जटिलताओं से बच सकते हैं।
- 6स्ट्रेटेजी पैटर्न ओपन-क्लोज सिद्धांत का पालन करता है: मौजूदा कोड को बदले बिना नई कार्यक्षमता जोड़ी जा सकती है।
- 7पेमेंट गेटवे और सॉर्टिंग एल्गोरिदम जैसे विभिन्न अनुप्रयोगों में स्ट्रेटेजी पैटर्न का व्यापक रूप से उपयोग किया जाता है।