حمیده دلیری
حمیده دلیری
خواندن ۲ دقیقه·۳ ماه پیش

الگوهای طراحی - Design Patterns

Design Patterns مجموعه‌ای از راهکارهای اثبات‌شده برای حل مشکلات رایج در طراحی نرم‌افزار هستند. این الگوها به توسعه‌دهندگان کمک می‌کنند تا کدهای قابل نگهداری، مقیاس‌پذیر و خوانا بنویسند.

دسته‌بندی اصلی الگوهای طراحی

الگوهای طراحی معمولاً به سه دسته تقسیم می‌شوند:

1. Creational (الگوهای سازنده)

این الگوها به ایجاد اشیا کمک می‌کنند و نحوه‌ی نمونه‌سازی را بهینه می‌کنند.

  • Singleton → محدود کردن ایجاد نمونه‌ای از یک کلاس به یک شیء واحد.
  • Factory Method → ایجاد اشیا بدون مشخص کردن کلاس دقیق آن‌ها.
  • Abstract Factory → ایجاد گروهی از اشیا مرتبط بدون تعیین کلاس‌های آن‌ها.
  • Builder → جدا کردن ساختار پیچیده‌ی یک شی از نحوه‌ی ایجاد آن.
  • Prototype → ایجاد اشیا جدید با استفاده از کپی نمونه‌های موجود.

2. Structural (الگوهای ساختاری)

این الگوها چگونگی ترکیب کلاس‌ها و اشیا را مشخص می‌کنند.

  • Adapter → تبدیل یک اینترفیس به اینترفیس دیگر برای سازگاری با سیستم.
  • Bridge → جداسازی بخش انتزاعی (Abstract) از پیاده‌سازی (Implementation).
  • Composite → ترکیب اشیا در ساختاری درختی برای استفاده‌ی یکسان از تک اشیا و گروهی از آن‌ها.
  • Decorator → اضافه کردن قابلیت به کلاس‌ها بدون تغییر در ساختار اصلی.
  • Facade → فراهم کردن یک رابط ساده برای مجموعه‌ای از کلاس‌های پیچیده.
  • Flyweight → استفاده‌ی بهینه از حافظه با به اشتراک‌گذاری اشیای مشابه.
  • Proxy → ایجاد یک واسطه برای کنترل دسترسی به یک شی.

3. Behavioral (الگوهای رفتاری)

این الگوها نحوه‌ی تعامل بین اشیا را تعریف می‌کنند.

  • Observe r → الگویی که امکان اطلاع رسانی خودکار تغییرات در یک شیء به سایر بخش‌های سیستم را فراهم می‌کند. این الگو در سیستم‌هایی که نیاز به هماهنگی بین اجزا دارند، مفید است.
  • Strategy → جداسازی الگوریتم‌های مختلف و انتخاب آن‌ها در زمان اجرا.
  • Command → کپسوله کردن یک درخواست به‌عنوان یک شیء مستقل.
  • Mediator → کنترل تعامل بین اشیا بدون نیاز به ارتباط مستقیم آن‌ها.
  • Memento → نگهداری وضعیت یک شی برای بازگرداندن آن در آینده.
  • State → تغییر رفتار یک شی براساس وضعیت آن.
  • Template Method → تعریف یک اسکلت کلی برای الگوریتم و اجازه‌ی تغییر بخش‌هایی از آن.
  • Chain of Responsibility → ارسال درخواست در زنجیره‌ای از پردازشگرها تا یکی از آن‌ها پاسخ دهد.
  • Iterator → ارائه راهی استاندارد برای پیمایش در مجموعه‌ها.
  • Visitor → اضافه کردن قابلیت‌های جدید بدون تغییر در کلاس‌های موجود.

چگونه از Design Patterns در Laravel و Filament استفاده کنیم؟

در Laravel و Filament برخی از این الگوها به‌شدت کاربردی هستند:

Singleton → در Service Providers برای جلوگیری از ایجاد چندین نمونه از یک سرویس.
Factory Method → در Eloquent Factories برای ایجاد مدل‌ها در تست‌ها.
Observer → در Eloquent برای گوش دادن به رویدادهای مدل‌ها.
Repository Pattern → جداسازی منطق پایگاه داده از کنترلرها.
Strategy → پیاده‌سازی استراتژی‌های مختلف برای پرداخت، احراز هویت و ...

design patternsالگوهای طراحی
شاید از این پست‌ها خوشتان بیاید