2009-06-14 21 views
5

संभव डुप्लिकेट:
How do you know when to use design patterns?डिजाइन पैटर्न

मैं कैसे समझ सकता हूँ/"जब उपयोग करने के लिए क्या डिजाइन पैटर्न" के बारे में निर्णय लेने के?

उपयुक्त स्थान पर उचित डिजाइन पैटर्न का उपयोग करने के बारे में निर्णय लेने के दौरान क्या कारक हैं?

+3

क्या आपने किताब पढ़ी है? किताब पढ़ी। –

+5

मुझे लगता है कि यह http://stackoverflow.com/questions/85272/how-do-you-now-when-to-use-design-patterns –

+0

धन्यवाद स्टीव का डुप्लिकेट हो सकता है! लिंक वास्तव में मदद की। –

उत्तर

3

आम तौर पर, यदि आप इसे सही कर रहे हैं, तो इसके लिए एक पैटर्न है। आप अभी जान सकते हैं कि आप इसका उपयोग कर रहे हैं।

यदि आप इसे गलत कर रहे हैं, तो इसके लिए एक विरोधी पैटर्न है। लेकिन आप निश्चित रूप से नहीं जानते कि आप इसका उपयोग कर रहे हैं।

+0

मजेदार (यानी विडंबना) लेकिन सहायक नहीं। – ChrisW

2

Gang of Four (GoF) पैटर्न एक अच्छा संसाधन है।

+3

गोफ वेब साइट पर चर्चाएं बहुत अधिक सार हैं। मैंने उन्हें समझने में कठोर पाया। –

+0

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

0

सभी अच्छी तरह से परिभाषित पैटर्न में पैटर्न, संदर्भ और पैटर्न द्वारा हल की गई समस्या है।

पैटर्न का पूरा बिंदु यह बताता है कि यह उचित कब है।

0

उत्कृष्ट पुस्तक "Emergent Design: The Evolutionary Nature of Professional Software Development" देखें। यह आपको दिखाता है कि हम डिज़ाइन पैटर्न पर कैसे समाप्त होते हैं, और आपको अपने कोड को आर्किटेक्ट करने पर अच्छा निर्देश देंगे।

2

आपको हमेशा अपने सॉफ़्टवेयर को डिज़ाइन पैटर्न फिट करने के लिए सेट नहीं करना चाहिए, लेकिन यदि यह किसी से मेल खाता है तो आप इसका उपयोग करते हैं। कई मामलों में आपके द्वारा की जाने वाली अधिकांश चीजों में एक डिज़ाइन पैटर्न होगा जो केवल एक पैटर्न है जिसे कई अलग-अलग सॉफ़्टवेयर कार्यान्वयनों से आम माना जाता है।

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

या कहें कि आप गेम इंजन में मेमोरी उपयोग को सीमित करना चाहते हैं तो आप ऑब्जेक्टपूल बना सकते हैं। Facade pattern

कई बार सिर्फ कैप्सूलीकरण या विरासत की तरह कार्यात्मक पैटर्न का उपयोग करना उचित: Object pool

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

कई प्रकार की सॉफ़्टवेयर समस्याओं को देखने से उत्पन्न पैटर्न याद रखें, यह प्रारंभिक बिंदु नहीं है बल्कि सॉफ्टवेयर आर्किटेक्चर का प्रतिबिंब है। dofactory.com पर पैटर्न के

Design pattern (computer science)

कई नमूने: Design pattern tutorial by dofactory

अजगर डिजाइन पैटर्न: http://video.google.com/videoplay?docid=-3035093035748181693

जबरदस्ती डिजाइन पैटर्न OO मजबूर कर की तरह है। यह परियोजना में हाथों से स्वाभाविक रूप से आना चाहिए।

0

मुझे लगता है कि अगर मैं सिर्फ एक प्रोग्राम हैकिंग कर रहा हूं, तो डिजाइन पैटर्न का अच्छा उपयोग लगभग असंभव है, लेकिन, यदि आप अपना प्रोग्राम डिज़ाइन करते हैं, तो आप देख सकते हैं कि आप क्या करना चाहते हैं और डिज़ाइन पैटर्न को देखना शुरू हो गया है आपका आवेदन।

उदाहरण के लिए, यदि आप देखते हैं कि एक वर्ग है जो एप्लिकेशन के प्रवाह को निर्देशित करता है तो नियंत्रक पैटर्न समझ में आता है।

डिज़ाइन पैटर्न का उपयोग करने का दूसरा तरीका है अपना प्रोग्राम लिखना, इसे काम करना, फिर डिज़ाइन पैटर्न का उपयोग करके रिफैक्टर। मेरा मानना ​​है कि मार्टिन फाउलर ने इस विषय पर एक पुस्तक लिखी थी, लेकिन मैं लेखक पर सकारात्मक नहीं हूं।

किसी भी तरह से यह जानने में मदद करता है कि आप कौन से पैटर्न सबसे अच्छे काम करने में मदद करने के लिए करना चाहते हैं।

+0

हां, फाउलर का 'रिफैक्टरिंग: मौजूदा कोड के डिजाइन में सुधार'। इस विषय पर यह सबसे अच्छी किताब है जिसे मैंने पार किया है। – CurtainDog

+0

मैंने इसे देखा, पुस्तक "पैटर्न के लिए रिफैक्टरिंग" है http://www.industriallogic.com/xp/refactoring/ –

संबंधित मुद्दे