डिजाइन पैटर्न्स
रचनात्मक डिजाइन पैटर्न
सिंगलटन - सुनिश्चित करें कि एक वर्ग का केवल एक उदाहरण बनाया गया है और ऑब्जेक्ट को एक वैश्विक पहुंच बिंदु प्रदान करें।
फैक्टरी (फैक्टरी विधि का सरलीकृत संस्करण) - ग्राहक के लिए तात्कालिकता तर्क को उजागर किए बिना वस्तुओं को बनाता है और एक सामान्य इंटरफ़ेस के माध्यम से नव निर्मित वस्तु को संदर्भित करता है।
फैक्ट्री मेथड - वस्तुओं को बनाने के लिए एक इंटरफेस को परिभाषित करता है, लेकिन उपवर्गों को यह तय करने देता है कि किस वर्ग को एक सामान्य इंटरफ़ेस के माध्यम से नए बनाए गए ऑब्जेक्ट को तुरंत और संदर्भित करना चाहिए।
एब्सट्रैक्ट फ़ैक्टरी - संबंधित कक्षाओं के परिवार को स्पष्ट रूप से उनकी कक्षाओं को निर्दिष्ट किए बिना बनाने के लिए इंटरफ़ेस प्रदान करता है।
बिल्डर - एक वस्तु बनाने के लिए एक उदाहरण को परिभाषित करता है, लेकिन उपवर्गों को यह तय करने देता है कि किस वर्ग को तत्काल निर्माण करना है और निर्माण प्रक्रिया पर बेहतर नियंत्रण की अनुमति देता है।
प्रोटोटाइप - एक प्रोटोटाइप उदाहरण का उपयोग करने के लिए वस्तुओं के प्रकार को निर्दिष्ट करें, और इस प्रोटोटाइप को कॉपी करके नई ऑब्जेक्ट बनाएं।
व्यवहार डिजाइन पैटर्न
जिम्मेदारी की श्रृंखला - यह अपने रिसीवर को एक अनुरोध भेजने वाले को संलग्न करने से बचता है, इस तरह से अन्य वस्तुओं को भी अनुरोध को संभालने की संभावना देता है। - वस्तुएं एक श्रृंखला का हिस्सा बन जाती हैं और अनुरोध को एक वस्तु से दूसरी श्रृंखला में भेजा जाता है जब तक कि कोई वस्तु इसे संभाल नहीं लेती।
कमांड - एक ऑब्जेक्ट में एक अनुरोध को एनकैप्सुलेट करें, विभिन्न अनुरोधों के साथ क्लाइंट के पैरामीटर को अनुमति देता है और अनुरोधों को एक कतार में सहेजने की अनुमति देता है।
दुभाषिया - एक भाषा को देखते हुए, इसके व्याकरण के लिए एक निरूपक के साथ एक निरूपण को परिभाषित करें जो भाषा में वाक्यों की व्याख्या करने के लिए प्रतिनिधित्व का उपयोग करता है / एक भाषा के लिए एक डोमेन का नक्शा, एक व्याकरण के लिए भाषा और एक व्याकरणिक वस्तु-उन्मुख डिजाइन के लिए व्याकरण।
Iterator - किसी अंतर्निहित वस्तु के तत्वों को क्रमिक रूप से उसके अंतर्निहित प्रतिनिधित्व को उजागर किए बिना एक्सेस करने का एक तरीका प्रदान करता है।
मध्यस्थ - एक ऐसी वस्तु को परिभाषित करें जो यह बताती है कि वस्तुओं का एक समूह कैसे परस्पर क्रिया करता है। मध्यस्थ ढीली युग्मन को बढ़ावा देता है वस्तुओं को स्पष्ट रूप से एक दूसरे से संदर्भित करते हुए, और यह आपको उनकी बातचीत को स्वतंत्र रूप से अलग करने देता है।
पर्यवेक्षक - वस्तुओं के बीच एक-से-कई निर्भरता को परिभाषित करें ताकि जब कोई वस्तु राज्य बदलती है, तो उसके सभी आश्रितों को सूचित और स्वचालित रूप से अद्यतन किया जाए।
रणनीति - एल्गोरिदम के एक परिवार को परिभाषित करें, प्रत्येक को एनकैप्सुलेट करें और उन्हें विनिमेय बनाएं। रणनीति एल्गोरिदम का उपयोग करने वाले ग्राहकों से स्वतंत्र रूप से भिन्न होती है।
टेम्पलेट विधि - एक ऑपरेशन में एक एल्गोरिथ्म के कंकाल को परिभाषित करें, उप-वर्ग / टेम्पलेट विधि के लिए कुछ चरणों का विचलन करते हुए, उप-वर्ग को एल्गोरिथ्म की संरचना को बदलने के लिए बिना एल्गोरिथ्म के कुछ चरणों को फिर से परिभाषित करने देता है।
विज़िटर - ऑब्जेक्ट संरचना के तत्वों पर किए जाने वाले ऑपरेशन का प्रतिनिधित्व करता है / विज़िटर आपको उन तत्वों की कक्षाओं को बदले बिना एक नए ऑपरेशन को परिभाषित करने देता है, जिस पर वह संचालित होता है।
अशक्त वस्तु - किसी दिए गए प्रकार की वस्तु की कमी के लिए सरोगेट के रूप में एक वस्तु प्रदान करें। / नल ऑब्जेक्ट पैटर्न बुद्धिमान प्रदान करता है कुछ भी व्यवहार नहीं करते हैं, अपने सहयोगियों से विवरण छिपाते हैं।
स्ट्रक्चरल डिजाइन पैटर्न
एडाप्टर - एक वर्ग के इंटरफ़ेस को दूसरे इंटरफ़ेस क्लाइंट में परिवर्तित करें जिसकी अपेक्षा की जाती है। / एडॉप्टर कक्षाओं को एक साथ काम करने देता है, जो असंगत इंटरफेस के कारण अन्यथा नहीं हो सकता है।
ब्रिज - भाग-पूरे पदानुक्रम का प्रतिनिधित्व करने के लिए पेड़ संरचनाओं में वस्तुओं की रचना करें। / समग्र ग्राहकों को व्यक्तिगत वस्तुओं और वस्तुओं की रचनाओं को समान रूप से व्यवहार करने देता है।
कम्पोजिट - भाग-पूरे पदानुक्रम का प्रतिनिधित्व करने के लिए पेड़ संरचनाओं में वस्तुओं की रचना करें। / समग्र ग्राहकों को व्यक्तिगत वस्तुओं और वस्तुओं की रचनाओं को समान रूप से व्यवहार करने देता है।
डेकोरेटर - एक वस्तु के लिए अतिरिक्त जिम्मेदारियों को गतिशील रूप से जोड़ें।
फ्लाईवेट - बड़ी संख्या में उन वस्तुओं का समर्थन करने के लिए साझाकरण का उपयोग करें जिनके पास अपने आंतरिक राज्य का हिस्सा है जहां राज्य का दूसरा हिस्सा अलग-अलग हो सकता है।
मेमेंटो - एन्कैप्सुलेशन का उल्लंघन किए बिना किसी ऑब्जेक्ट की आंतरिक स्थिति को कैप्चर करना और इस प्रकार आवश्यकता होने पर ऑब्जेक्ट को प्रारंभिक अवस्था में पुनर्स्थापित करने के लिए एक साधन प्रदान करना।
प्रॉक्सी - किसी ऑब्जेक्ट के लिए "प्लेसहोल्डर" को इसके संदर्भों को नियंत्रित करने के लिए प्रदान करें।