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