मेरा मानना है कि चार के गिरोह के रूप में डिजाइन पैटर्न वर्गीकृत करते हैं
आमतौर पर होने वाली समस्या का एक सामान्य समाधान *
तो हां, जब एक ही प्रकार की समस्या होती है तो पैटर्न प्रासंगिक होते हैं। और यह हमें "डिज़ाइन पैटर्न" शब्द के साथ एक समस्या में लाता है। एक पैटर्न कुछ पहचानने योग्य है जो बार-बार होता है। तो वास्तव में डिजाइन का एक पैटर्न नहीं है, समस्याओं का एक पैटर्न है।
कुछ प्रोग्रामिंग भाषाओं में कुछ समस्याओं के मूल समाधान हो सकते हैं। "डिज़ाइन पैटर्न" पुस्तक में उल्लेख किया गया है कि यदि आप CLOS का उपयोग कर रहे हैं तो विज़िटर पैटर्न बहुत कम है, क्योंकि बहु-प्रेषण मूल रूप से CLOS द्वारा समर्थित है, बहुत समस्या जो विज़िटर पैटर्न को हल करने की कोशिश कर रही है।
इसके अलावा, .NET फ्रेमवर्क में कई श्रोताओं के लिए घटनाओं को प्रकाशित करने के लिए इवेंट मैकेनिज्म है, जो इस संदर्भ में ऑब्जर्वर पैटर्न को कम प्रासंगिक बनाता है।
डेस्कटॉप एप्लिकेशन से वेब एप्लिकेशन में परिवर्तन ** भी प्रोग्रामिंग समस्याओं के प्रकार को बदलते हैं जिन्हें हमें हल करना है। पुस्तक "डिज़ाइन पैटर्न" में कई पैटर्न डेस्कटॉप अनुप्रयोगों के लिए प्रासंगिक हैं, लेकिन वेब अनुप्रयोगों के लिए इतना नहीं है। बेशक, सिंगल पेज ऐप्स के साथ, ये पैटर्न क्लाइंट-साइड पर फिर से प्रासंगिक हो सकते हैं।
लेकिन डिज़ाइन पैटर्न और किताबें जैसे "डिज़ाइन पैटर्न", या "एंटरप्राइज एप्लीकेशन आर्किटेक्चर के पैटर्न" बहुत बड़े मूल्य के होते हैं जब आप एक नौसिखिए प्रोग्रामर होते हैं और पहली बार एक नई प्रकार की समस्या का सामना करते हैं; जैसा कि मैंने पहली बार पूर्ववत कार्यक्षमता को लागू करने के लिए कहा था। यदि यह "डिज़ाइन पैटर्न" पुस्तक के लिए नहीं होता, तो मेरा कार्यान्वयन संभवतः प्रत्येक स्टेट-चेंजिंग ऑपरेशन के बाद डेटा के स्नैपशॉट को स्टोर करने जैसा कुछ होता था *** - एक बहुत त्रुटि प्रवण, और बहुत ही अक्षम, दृष्टिकोण।
तो हां, कुछ पैटर्न समय के साथ कम प्रासंगिक हो जाते हैं, और जैसा कि आप एक अनुभवी प्रोग्रामर बन जाते हैं, आप उनके बारे में कम सोचते हैं। लेकिन एक नौसिखिए के लिए, वे मूल्यवान हैं, जब तक आपको याद है कि वे एक समस्या को हल करने के साधन हैं - और जितना संभव हो उतना उपयोग करने के लिए एक खोज नहीं।
* उद्धरण 100% सटीक नहीं हो सकता है क्योंकि यह मेमोरी से लिया गया है
** मेरे अनुभव में, उद्यमों के लिए आंतरिक लाइन-ऑफ-बिजनेस अनुप्रयोगों के लिए वेब डिलीवरी तंत्र का चयन करना बहुत आम बात है।
*** कार्यात्मक प्रोग्रामिंग और कार्यात्मक डेटा संरचनाओं को सीखने के बाद, फिर वह वास्तव में जिस तरह से मैं आज इसे हल कर सकता हूं।