इसके लिए एक विस्तृत विवरण की आवश्यकता है लेकिन मैं अपने सर्वश्रेष्ठ ज्ञान के अंतर को समझने की कोशिश करूंगा।
पैटर्न आसुत समानताएं हैं जो आप कार्यक्रमों में पाते हैं। यह हमें एक बड़ी जटिल संरचना के पुनर्निर्माण और सरल भागों का उपयोग करने की अनुमति देता है। यह समस्याओं के एक वर्ग के लिए एक सामान्य समाधान प्रदान करता है।
एक बड़ा जटिल सॉफ्टवेयर विभिन्न स्तरों पर विखंडन की एक श्रृंखला से गुजरता है। बड़े स्तर पर, वास्तुशिल्प पैटर्न उपकरण हैं। छोटे स्तर पर, डिज़ाइन पैटर्न उपकरण हैं और कार्यान्वयन स्तर पर, प्रोग्रामिंग प्रतिमान उपकरण हैं।
एक पैटर्न बहुत अलग-अलग स्तरों पर हो सकता है। भग्न देखें । त्वरित क्रम, मर्ज सॉर्ट क्रम में तत्वों के समूह को व्यवस्थित करने के लिए सभी एल्गोरिदम पैटर्न हैं।
सबसे सरल दृश्य के लिए:
- प्रोग्रामिंग प्रतिमान - प्रोग्रामिंग भाषा के लिए विशिष्ट
- डिजाइन पैटर्न - सॉफ्टवेयर निर्माण में समस्याओं को हल करता है
- आर्किटेक्चरल पैटर्न - सॉफ्टवेयर सिस्टम के लिए मूलभूत संरचनात्मक संगठन
मुहावरे प्रतिमान-विशिष्ट और भाषा-विशिष्ट प्रोग्रामिंग तकनीकें हैं जो निम्न-स्तरीय विवरणों को भरती हैं।
डिज़ाइन पैटर्न आमतौर पर कोड स्तर की सामान्यताओं से जुड़े होते हैं। यह छोटे उप-प्रणालियों को परिष्कृत और निर्माण करने के लिए विभिन्न योजनाएँ प्रदान करता है। यह आमतौर पर प्रोग्रामिंग भाषा से प्रभावित होता है। कुछ प्रतिमान भाषा के प्रतिमानों के कारण महत्वहीन हो जाते हैं । डिजाइन पैटर्न मध्यम स्तर की रणनीति है जो संस्थाओं और उनके संबंधों की संरचना और व्यवहार में से कुछ को बाहर निकालते हैं।
जबकि आर्किटेक्चर पैटर्न को डिज़ाइन पैटर्न की तुलना में उच्च स्तर पर समानता के रूप में देखा जाता है। आर्किटेक्चरल पैटर्न उच्च स्तर की रणनीतियां हैं जो बड़े पैमाने पर घटकों, वैश्विक गुणों और एक प्रणाली के तंत्र की चिंता करती हैं।
पैटर्न कैसे प्राप्त होते हैं? के माध्यम से:
- फिर से उपयोग,
- वर्गीकरण
- और अंत में समानता को भंग करने के लिए अमूर्तता।
अगर आपने ऊपर दिए गए विचारों का पालन किया है। आप देखेंगे कि सिंग्लटन एक "डिज़ाइन पैटर्न" है जबकि MVC चिंताओं को अलग करने से निपटने के लिए "वास्तुशिल्प" पैटर्न में से एक है।
पर पढ़ने की कोशिश करें:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern