دیزاین پترن (Design Patterns) یا الگوهای طراحی نرم‌افزار، راه‌حل‌های شناخته‌شده و قابل تکرار برای مسائل متداول طراحی آبجکت‌گرا هستند. پترن، کد آماده برای Copy/Paste نیست. مسئله، شرایط استفاده، ساختار همکاری آبجکت‌ها و هزینه‌های آن را توصیف می‌کند.

کتاب مشهور Gang of Four تعداد ۲۳ پترن کلاسیک را در سه دسته معرفی می‌کند. در طراحی واقعی فروشگاه اینترنتی، پترن‌ها می‌توانند مسئولیت ساخت درگاه پرداخت، مدیریت سبد خرید یا ارسال رویدادهای سفارش را روشن کنند. با این‌حال استفاده از پترن بی‌نیاز از مسئله واقعی، کد را پیچیده می‌کند.

دیزاین پترن‌های سازنده (Creational)، ۵ مورد

دیزاین پترنمسئله‌ای که حل می‌کندسناریوی فروشگاه
دیزاین پترن سینگلتونکنترل تعداد نمونهسرویس پیکربندی در محدوده مشخص
دیزاین پترن فکتوری متدواگذاری ساخت آبجکتانتخاب درگاه پرداخت
دیزاین پترن ابسترکت فکتوریساخت خانواده سازگار از آبجکت‌هاساخت Client و Formatter مخصوص یک سرویس ارسال
دیزاین پترن بیلدرساخت مرحله‌ای آبجکت پیچیدهساخت یک Query فیلتر محصولات
دیزاین پترن پروتوتایپساخت نمونه بر اساس نمونه موجودکپی یک قالب تخفیف و تغییر چند ویژگی

دیزاین پترن‌های ساختاری (Structural)، ۷ مورد

دیزاین پترنهدفمثال کاربردی
دیزاین پترن آداپترسازگار کردن رابط ناسازگارهماهنگ‌سازی API شرکت حمل‌ونقل
دیزاین پترن بریججداسازی انتزاع از پیاده‌سازیکانال اعلان مستقل از قالب پیام
دیزاین پترن کامپوزیتساخت ساختار درختیدسته‌بندی و زیرمجموعه محصولات
دیزاین پترن دکوراتورافزودن رفتار بدون تغییر کلاس اصلیتخفیف و مالیات به قیمت پایه
دیزاین پترن فسادرابط ساده روی چند سرویسثبت سفارش با موجودی، پرداخت و اعلان
دیزاین پترن فلای‌ویتاشتراک وضعیت مشترکاطلاعات مشترک SKU در هزاران آیتم
دیزاین پترن پراکسیکنترل دسترسی به آبجکت دیگرCache یا کنترل مجوز هنگام دریافت گزارش

دیزاین پترن‌های رفتاری (Behavioral)، ۱۱ مورد

دیزاین پترنکاربردنمونه
دیزاین پترن چین آو ریسپانسیبیلیتیعبور درخواست از چند Handlerبررسی اعتبارسنجی و سیاست تخفیف
دیزاین پترن کامندتبدیل عملیات به آبجکتثبت وظیفه ارسال سفارش در صف
دیزاین پترن اینترپرترتفسیر دستور یا زبان کوچکقواعد فیلتر جست‌وجوی محصولات
دیزاین پترن ایتریتورپیمایش مجموعه بدون دانستن ساختار داخلیپیمایش صفحات نتایج API
دیزاین پترن مدیاتورکاهش ارتباط مستقیم اجزاهماهنگی فرم Checkout
دیزاین پترن ممنتوثبت و بازیابی وضعیتبازگردانی پیش‌نویس سبد خرید
دیزاین پترن آبزروراعلام تغییر به مشترکاناطلاع‌رسانی پس از ثبت سفارش
دیزاین پترن استیتتغییر رفتار متناسب با وضعیتوضعیت پرداخت و ارسال سفارش
دیزاین پترن استراتژیتعویض الگوریتم در زمان اجراروش محاسبه هزینه ارسال
دیزاین پترن تمپلیت متدتعریف اسکلت فرایند و نقاط قابل تغییرچرخه پردازش سفارش‌های مختلف
دیزاین پترن ویزیتورافزودن عملیات روی ساختار آبجکت‌هاگزارش مالی روی انواع ردیف فاکتور

از کجا یادگیری را شروع کنیم؟

معمولا Strategy، Factory Method، Adapter و Observer سریع‌تر در کدهای پروژه واقعی دیده می‌شوند. ابتدا نشانه‌های مسئله را بشناسید و سپس پترن را انتخاب کنید.

مطالعه تکمیلی: مقاله دیزاین پترن باورژن و دوره رایگان دیزاین پترن‌های باورژن.