आपको लगता है कि कौन सा डिज़ाइन पैटर्न सबसे लोकप्रिय है?
आपको लगता है कि कौन सा डिज़ाइन पैटर्न सबसे लोकप्रिय है?
जवाबों:
मुझे पूरा यकीन है कि 'द बिग बॉल ऑफ मड' सबसे आम है। दुर्भाग्य से हम सभी के लिए।
http://en.wikipedia.org/wiki/Big_ball_of_mud
एमवीसी और इसकी विविधता निश्चित रूप से शीर्ष डिजाइन पैटर्न में से एक है।
यदि आप गैंग-ऑफ-फ़ोर डिज़ाइन पैटर्न के बारे में बात कर रहे हैं, तो मुझे सिंगलटन कहना होगा । यह वास्तव में दुखद स्थिति है - लगभग जैसे कि प्रोग्रामर डिजाइन पैटर्न के जादू के बारे में सुनते हैं और फिर पहले एक के बाद रुक जाते हैं।
यदि आप वास्तु-शैली के पैटर्न (दूसरे शब्दों में, डिज़ाइन पैटर्न जो कई कक्षाओं या परतों को फैलाते हैं) के बारे में बात कर रहे हैं , तो मुझे MVC कहना होगा । कुछ अन्य लोकप्रिय रिपॉजिटरी पैटर्न और सर्विस-लोकेटर हैं ।
देखने वाला
यदि आपने कभी किसी घटना का उपयोग किया है। आपने ऑब्जर्वर का उपयोग किया है।
डेकोरेटर
संरचना के माध्यम से रनटाइम पर किसी ऑब्जेक्ट में कार्यक्षमता जोड़ें। मेरा व्यक्तिगत पसंदीदा।
संपादित करें: फैक्टरी भी शायद सबसे आम में से एक है।
मुखौटा
Twitter या SO API जैसे किसी भी अन्य इंटरफ़ेस के बारे में सोचें। यह बैक एंड स्टफ का एक गुच्छा छिपा रहा है, जो कम से कम ट्विटर्स के मामले में, बहुत ही जटिल हो सकता है।
मुझे परवाह है कि कौन सी डीबी टेबल @ apklusk के ट्वीट में संग्रहीत हैं? और यह एक तेज़ कैश है? और उस @shemnon के पास इतने कम पाठक हैं कि ट्वीट्स हमेशा स्मृति से बाहर होते हैं? यही तो फेक का जादू है।
रणनीति पैटर्न
यदि आपने कभी निर्भरता इंजेक्शन का उपयोग किया है, तो आपने रणनीति पैटर्न का उपयोग किया है।
क्यों किसी ने अभी तक पुनरावृत्ति का उल्लेख नहीं किया है? विशेष रूप से सभी मानचित्रों के साथ जो जटिल डेटा संरचनाएं बनाते हैं ... इसका उपयोग मैं सबसे अधिक करता हूं। या हम उन पैटर्न के बारे में बात कर रहे हैं जिन्हें हम फिर से लागू करते हैं?
अपने पिछले उत्तर के साथ, मैं एक नया जोड़ने जा रहा हूं जिसे मैं विरासत में दिए गए प्रोजेक्ट के अपने जानवर से आज चला रहा हूं:
कॉपी पेस्ट
डिबगिंग के दौरान मैं कोड के एक भाग में 2 समान नाम वाले कार्यों को बुलाता था:
if(x)
Func1
else
Func2
Func1 और Func2 के एक ही पैरामीटर थे। मैंने उन्हें बाहर निकाला और अलग किया, और वे Func1 कॉल Func3 और Func2 कॉल Func4 को छोड़कर 100% समान हैं। मैंने उन लोगों को बाहर निकाला और उन्हें अलग किया। 100% समान, 1 लाइन को छोड़कर। इसलिए पिछले प्रोग्रामर ने फ्लैग पैरामीटर को जोड़ने के बजाय दो निजी कार्यों को 1 स्थान पर उपयोग करने के लिए दो 50-लाइन-नेस्टेड फ़ंक्शन को कॉपी और पेस्ट करने का निर्णय लिया। इससे मुझे रोने की इच्छा होती है।
गैंग-ऑफ-फोर डिज़ाइन पैटर्न के बारे में बात करते हुए, मैं एक ऐसे कार्यक्रम के बारे में नहीं सोच सकता जो ऑब्जर्वर पैटर्न का उपयोग नहीं करता है। इसके अलावा, जैसा कि जैको ने उल्लेख किया है, सिंगलटन का भी अत्यधिक उपयोग किया जाता है, दुर्भाग्य से यह एक हथौड़ा बन गया है (कोई भी प्रोग्रामर इसका उपयोग करता है, भले ही यह पूरी तरह से आवश्यक न हो)।
$_SESSION
चर में संग्रहीत है ।
दुभाषिया
शायद ही कभी लागू किया जाता है। XPATH, XSLT, Regex, jQuery के चयनकर्ता, आदि।
मुझे आश्चर्य है कि किसी ने अभी तक "बिल्डर" नहीं कहा है। या "एडाप्टर"। वे शायद उतने विदेशी नहीं हैं जितना कि कुछ अन्य लोगों ने उल्लेख किया है, लेकिन मैं हर समय उनका उपयोग करता हूं। फैक्ट्री और एब्सट्रैक्ट फैक्ट्री बहुत ही सामान्य हैं (लेकिन वे पहले से ही ली गई हैं)।
मुझे नहीं लगता कि यह GoF में सूचीबद्ध है, लेकिन मैं हर समय इसके विभिन्न रूपों का उपयोग करता हूं।
सबसे अधिक इस्तेमाल किया जाने वाला डिज़ाइन पैटर्न, जाहिर है, स्पेगेटी है ।
सॉफ़्टवेयर डिज़ाइन स्तर पर, मैं तर्क दूंगा कि समग्र, रणनीति और टेम्पलेट (और कुछ हद तक फैक्ट्री के लिए) सबसे व्यापक रूप से उपयोग हैं। पिछले एक दशक से या तो हमने ओओ डिज़ाइन का उपयोग करके अपने सिस्टम का निर्माण करते समय विरासत पर रचना के लिए प्राथमिकता देखी है। नतीजतन, उल्लेख किए गए पैटर्न का संयोजन सभी अन्य आईएमओ की तुलना में बहुत अधिक महत्वपूर्ण भूमिका निभाता है।
वास्तुकला में, मैं एमवीसी के लिए उद्यम पर बहस करूँगा, और चीजों के एम्बेडेड पक्ष पर राज्य मशीनों पर आधारित पैटर्न।