कब किस डिजाइन पैटर्न का उपयोग करें? [बन्द है]


104

मुझे डिजाइन पैटर्न बहुत पसंद है, लेकिन मुझे यह देखना मुश्किल है कि मैं कब एक आवेदन कर सकता हूं। मैंने बहुत सी वेबसाइटें पढ़ी हैं जहाँ डिज़ाइन पैटर्न के बारे में बताया गया है। मैं उनमें से अधिकांश को समझता हूं, लेकिन मुझे अपनी स्थितियों में एक पैटर्न को पहचानना मुश्किल है।

इसलिए, इसीलिए मैं यह सवाल पूछता हूं। क्या कोई दिशा-निर्देश / अलार्म घंटियाँ हैं जब किस डिजाइन पैटर्न का उपयोग करना है।

उदाहरण के लिए, यदि आप यह निर्धारित करने के लिए स्विच स्टेटमेंट कर रहे हैं कि आपको किस ऑब्जेक्ट को बनाने की आवश्यकता है, तो आप संभवतः फ़ैक्टरी डिज़ाइन पैटर्न का उपयोग करना चाहते हैं। तो इस मामले में स्विच स्टेटमेंट फ़ैक्टरी पैटर्न का उपयोग करने के लिए एक 'खतरे की घंटी' है।

तो, क्या आप एक डिज़ाइन पैटर्न निर्धारित करने के लिए अधिक 'अलार्म घंटियाँ' जानते हैं?


6
आमतौर पर मेरे द्वारा देखे गए पैटर्न विवरण में उन स्थितियों का विवरण शामिल होता है, जहाँ आप उस डिज़ाइन पैटर्न को चाहते हैं।
आर। मार्टिनो फर्नांडिस

जवाबों:


99

आमतौर पर प्रक्रिया दूसरी तरह से होती है। उन स्थितियों की तलाश में न जाएं जहां डिज़ाइन पैटर्न का उपयोग करना है, उन कोड की तलाश करें जिन्हें अनुकूलित किया जा सकता है। जब आपके पास कोड होता है जो आपको लगता है कि सही ढंग से संरचित नहीं है। एक डिज़ाइन पैटर्न खोजने की कोशिश करें जो समस्या को हल करेगा।

डिज़ाइन पैटर्न आपको संरचनात्मक समस्याओं को हल करने में मदद करने के लिए हैं, डिज़ाइन पैटर्न का उपयोग करने में सक्षम होने के लिए अपने एप्लिकेशन को डिज़ाइन न करें।


23
न केवल संरचनात्मक समस्याएं, बल्कि व्यवहारिक और रचनात्मक समस्याएं भी।
DevDemon

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

5

उन्हें जानें और धीरे-धीरे आप उनका उपयोग करने के लिए पुन: संयोजन और पता लगाने में सक्षम होंगे। सिंगलटन पैटर्न के रूप में कुछ सरल से शुरू करें :)

यदि आप किसी वस्तु का एक उदाहरण और सिर्फ एक बनाना चाहते हैं। आप सिंगलटन पैटर्न का उपयोग करते हैं। मान लें कि आप एक विकल्प ऑब्जेक्ट के साथ एक कार्यक्रम बना रहे हैं। आप उनमें से कई नहीं चाहते, जो मूर्खतापूर्ण होगा। सिंगलटन सुनिश्चित करता है कि एक से अधिक कभी नहीं होगा। सिंगलटन पैटर्न सरल है, बहुत उपयोग किया जाता है, और वास्तव में प्रभावी है।


17
सिंगलटन वास्तव में तब नहीं होता जब आपको केवल एक उदाहरण की आवश्यकता होती है । सिंगलटन तब है जब आपको एक उदाहरण तक सीमित करने की आवश्यकता होती है। जब आपको केवल एक उदाहरण की आवश्यकता होती है , तो आप केवल एक उदाहरण बनाने और उसका उपयोग करने का प्रयास कर सकते हैं।
आर। मार्टिनो फर्नांडिस

इसके अलावा, जबकि कुछ जगहों पर सिंगलटन बहुत उपयोगी और आवश्यक है, यह आवश्यक नहीं होने पर लागू करने के लिए एक बहुत आसान पैटर्न भी है। जैसा कि आप यहाँ इशारा करते हैं, और जैसा कि फर्नांडिस ने कहा है, आपको इसकी आवश्यकता नहीं है। तथ्य की बात के रूप में, एक सिंगलटन पैटर्न का उपयोग संभव (शायद) कोड बदबू का एक अच्छा संकेत है। सेवा वर्ग के लिए इसका उपयोग करना एक कोड गंध की तुलना में अधिक है। लगता है जैसे आपको DI की जरूरत है, सिंगलटन की नहीं। कुछ लोग उन्हें इस तरह से इस्तेमाल करते हैं। विशेष रूप से छोटे (महत्वहीन) कोड, या POC के लिए। लेकिन जैसा मैंने कहा, कुछ प्रभावी उपयोग हैं। कुछ करने का एक आसान तरीका मत ढूंढो और बस करो।
सुमेरे ११'१४ को १६:१२

4

मैं पूरी तरह से @Peter Rasmussen से सहमत हूँ।

डिजाइन पैटर्न आमतौर पर होने वाली डिजाइन समस्या का सामान्य समाधान प्रदान करते हैं।

मैं आपको नीचे दिए गए दृष्टिकोण का पालन करना चाहूंगा।

  1. प्रत्येक पैटर्न के इरादे को समझें
  2. चेकलिस्ट को समझें या प्रत्येक पैटर्न के मामले का उपयोग करें
  3. अपनी समस्या के समाधान के बारे में सोचें और जाँचें कि क्या आपका समाधान किसी विशेष पैटर्न की चेकलिस्ट में आता है
  4. यदि नहीं, तो बस डिज़ाइन-पैटर्न को अनदेखा करें और अपना समाधान लिखें।

उपयोगी कड़ियाँ:

सोर्समेकिंग : सी ++ और जावा सहित कई भाषाओं में इरादे , संरचना और चेकलिस्ट को खूबसूरती से समझाता है

विकिपीडिया : सी # और जावा सहित कई भाषाओं में संरचना, यूएमएल आरेख और कामकाजी उदाहरणों की व्याख्या करता है।

प्रत्येक सोर्समेकिंग डिज़ाइन-पैटर्नमें अंगूठे की सूची और नियमों की जाँच करें, जो आपको दिख रही है , अल्राम घंटी प्रदान करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.