ডিজাইন প্যাটার্ন অভিজ্ঞ অবজেক্ট-অরিয়েন্টেড সফটওয়্যার ডেভেলপারদের দ্বারা ব্যবহৃত সেরা অনুশীলনগুলোর প্রতিনিধিত্ব করে। ডিজাইন প্যাটার্ন হলো সফটওয়্যার ডেভেলপমেন্টের সময় ডেভেলপারদের মুখোমুখি হওয়া সাধারণ সমস্যা সমাধান। এই সমাধানগুলো অনেক সফটওয়্যার ডেভেলপারদের ידי দীর্ঘ সময় ধরে ট্রায়াল এবং এরর দিয়ে প্রাপ্ত হয়েছে।
ডিজাইন প্যাটার্ন ল্যাঙ্গুয়েজ-এগনস্টিক। ডিজাইন প্যাটার্ন তিনটি ক্যাটেগরিতে ভাগ করা যায়: ক্রিয়েশনাল, স্ট্রাকচারাল এবং বিহেভিয়োরাল প্যাটার্ন।
ক্রিয়েশনাল প্যাটার্ন − এই ডিজাইন প্যাটার্নগুলো অবজেক্ট তৈরি করার একটি উপায় দেয় ক্রিয়েশন লজিক হাইড করে, বরং new অপারেটর দিয়ে সরাসরি ইনস্ট্যানশিয়েট করার বদলে। এটা প্রোগ্রামকে বেশি ফ্লেক্সিবিলিটি দেয় সিদ্ধান্ত নেওয়ায় কোন অবজেক্টগুলো একটি দিয়ে ইউজ কেসের জন্য তৈরি করতে হবে। উদাহরণ প্যাটার্ন: ফ্যাক্টরি, বিল্ডার, সিংগলটন, ইত্যাদি।
স্ট্রাকচারাল প্যাটার্ন − এই ডিজাইন প্যাটার্নগুলো ক্লাস এবং অবজেক্ট কমপোজিশন নিয়ে চিন্তা করে। ইনহেরিটেন্সের কনসেপ্ট ব্যবহার করে ইন্টারফেস কমপোজ করা হয় এবং অবজেক্ট কমপোজ করার উপায় ডিফাইন করা হয় যাতে নতুন ফাংশনালিটি প্রাপ্ত হয়। উদাহরণ প্যাটার্ন: অ্যাডাপ্টার, ডেকোরেটর, ফ্যাসেড, ইত্যাদি।
বিহেভিয়োরাল প্যাটার্ন − এই ডিজাইন প্যাটার্নগুলো বিশেষভাবে অবজেক্টের মধ্যে কমিউনিকেশন নিয়ে চিন্তা করে। উদাহরণ প্যাটার্ন: অবজারভার, ইটারেটর, Страটেজি, ইত্যাদি।