الگوی طراحی Iterator یک الگوی رفتاری است که راهی برای پیمایش عناصر یک مجموعه به صورت یک به یک بدون توجه به جزئیات مجموعه را فراهم می کند. این الگو کپسولهسازی را ترویج میکند و اجازه میدهد تا ساختار داخلی مجموعه بدون تأثیر روی کد کلاینت تغییر کند. برای مثال در صورت تغییر ساختار مجموعه از آرایه به لیست، کد های کلاینت تغییری نخواهند کرد.
الگوی طراحی Memento یک الگوی رفتاری است که به یک شی اجازه میدهد حالت قبلی خود را ذخیره کند تا بعداً بدون مشکل بتواند به آن حالت بازگردد. این الگو در مواقعی مفید است که میخواهید یک شی را به حالت قبلی بازیابی کنید یا زمانی که نیاز به لغو یک سری اقدامات دارید.
الگوی طراحی State یک الگوی رفتاری است که به یک شی اجازه می دهد تا رفتار خود را بر اساس نیاز تغییر دهد. این الگو به جداسازی رفتار یک شی از وضعیت آن کمک می کند و امکانی برای جابجایی بین وضعیت های مختلف به صورت پویا فراهم می کند.
الگوی طراحی Strategy یک الگوی طراحی رفتاری است که امکان تعریف دسته ای از متدها را فراهم میکند که در زمان اجرا قابل تعویض هستند.
الگوی Template Method یک الگوی طراحی رفتاری است که اسکلت یک الگوریتم را در یک کلاس پایه تعریف میکند و به زیر کلاسها اجازه میدهد تا مراحل خاصی از الگوریتم را بدون تغییر ساختار کلی آن پیاده سازی کنند. این الگو زمانی مفید است که چندین کلاس عملیات مشابه اما با پیاده سازی های متفاوت داشته باشند.
الگوی طراحی Observer یک الگوی طراحی رفتاری است که یک شئ را به چند کلاس وابسته به آن متصل میکند. این الگو امکانی فراهم میکند که در زمان تغییر وضعیت یک شیء، اشیاء وابسته به آن به طور خودکار مطلع و به روز شوند.
الگوی طراحی Visitor یک الگوی طراحی رفتاری است که به شما امکان می دهد رفتار شئ را از ساختار شئ جدا کنید. این الگو زمانی مفید است که شما یک ساختار شئ پیچیده دارید و می خواهید عملیات جدیدی را بدون تغییر خود اشیا به آن اضافه کنید.
الگوی طراحی Command یک الگوی طراحی رفتاری است که یک درخواست را به عنوان یک شی کپسوله می کند و فرستنده درخواست را از گیرنده درخواست جدا می کند.
الگوی زنجیره مسئولیت یا Chain of Responsibility یک الگوی طراحی رفتاری است که یک شی را قادر می سازد تا درخواستی را در امتداد زنجیره ای از Handler ها ارسال کند تا زمانی که یکی از آنها آن را رسیدگی کند.
الگوی Flyweight یک الگوی طراحی ساختاری است که برای به حداقل رساندن استفاده از حافظه و بهبود عملکرد برنامه استفاده میشود. این الگو از طریق به اشتراک گذاری اشیاء با ویژگی های مشابه از مصرف حافظه اضافی جلوگیری میکند.
الگوی طراحی Facade یک الگوی طراحی ساختاری است که یک رابط ساده برای مجموعه ای پیچیده از کلاس ها، رابط ها و اشیاء ارائه می دهد. این الگو پیچیدگی سیستم را پنهان می کند و یک نقطه ورود واحد برای دسترسی به سیستم فراهم می کند.
الگوی طراحی Decorator یک الگوی طراحی ساختاری(structural) است که به شما امکان می دهد به صورت پویا رفتاری را به یک شی در زمان اجرا اضافه کنید. این الگو می تواند رفتار اضافی به یک کلاس اضافه کند یا رفتار موجود را بدون تغییر شی اصلی تغییر دهد.
الگوی طراحی Composite یک الگوی طراحی ساختاری است که به شما امکان می دهد اشیاء را در ساختارهای درختی ترکیب کنید تا سلسله مراتبی از اشیاء را داشته باشید. هر عنصر از سلسله مراتب میتواند خود سلسله مراتبی دیگر از اشیاء باشد.
الگوی طراحی مُفَسِر یا Interpreter یک الگوی طراحی رفتاری(Behavioral) است که راهی برای تفسیر جملات یا عبارات در یک زبان تعریف شده، ارائه می دهد.
الگوی Proxy یک الگوی ساختاری(structural) است که یک جانشین یا placeholder برای یک شی دیگر فراهم میکند که از طریق آن میشود آن شئ را کنترل کرد.
الگوی Bridge یک الگوی طراحی ساختاری(Structural) است که انتزاعات را از پیاده سازی ها جدا می کند تا بتوانند مستقل باشند.
الگوی Abstract Factory یک الگوی طراحی ایجاد کننده است که امکان ایجاد مجموعه ای از اشیاء مرتبط یا وابسته را بدون مشخص کردن نوع کلاسهای آنها فراهم میکند.
الگوی پروتوتایپ یک الگوی ایجاد کننده است که به شما امکان میدهد یک شئ جدید از روی یک شئ موجود ایجاد کنید. شئ جدید همهی مقادیر موجود در شئ اولیه را کپی میکند.
الگوی بیلدر یک الگوی ایجادکننده است که برای جدا کردن فرآیند ساخت یک شی پیچیده از خود آن کلاس استفاده می شود.
الگوی Singleton یک الگوی طراحی ایجاد کننده(Creational) است که تضمین می کند یک کلاس فقط یک نمونه دارد و فقط یک نقطه دسترسی به آن نمونه را فراهم می کند.
در این مطلب الگوی فکتوری را معرفی میکنیم
الگوی طراحی Mediator یک الگوی طراحی رفتاری(Behavioral) است که با فراهم کردن یک بستر ارتباطی مرکزی میان اجزاء مختلف، اتصال مستقیم بین آنها را از بین میبرد.
الگوی طراحی Adapter یک الگوی طراحی ساختاری(Structural) است که ارتباط دو کلاس غیرمرتبط را از طریق یک کلاس واسط انجام میدهد.