تفاوت الگو طراحی Momento و command

منبع: chatgpt


هدف اصلی:

  • Memento: برای ذخیره و بازیابی وضعیت یک شیء استفاده می‌شود. این الگو به شما اجازه می‌دهد که وضعیت فعلی یک شیء را ذخیره کنید و در آینده آن را به حالت قبلی برگردانید، بدون اینکه درونیات آن شیء برای بخش‌های دیگر سیستم آشکار شود. معمولاً در پیاده‌سازی قابلیت “Undo” یا “Redo” استفاده می‌شود.
  • Command: برای بسته‌بندی یک درخواست یا عملیات در یک شیء استفاده می‌شود. این الگو به شما اجازه می‌دهد که درخواست‌ها، دستورات، و اقدامات را به صورت مستقل از فراخوانی‌کننده ذخیره و مدیریت کنید. معمولاً برای صف‌بندی درخواست‌ها، اجرای دستورات در زمان‌های مختلف، و ثبت عملیات به کار می‌رود.

مفهوم:

  • Memento: بیشتر روی حفظ وضعیت تمرکز دارد.
  • Command: بیشتر روی اجرای عملیات و بسته‌بندی آنها به عنوان دستورات مستقل تمرکز دارد.

مثال واقعی:

  • Memento: در یک ویرایشگر متن، وضعیت فعلی سند (مثلاً قبل از اعمال تغییرات) را ذخیره می‌کنیم تا بتوانیم به حالت قبلی بازگردیم.
  • Command: در یک سیستم کنترل ربات، هر حرکت ربات به عنوان یک دستور ذخیره و در صف گذاشته می‌شود تا در زمان مناسب اجرا شود.

مشکل حل شده:

Command: حل مشکل مدیریت دستورات و درخواست‌ها به صورت جدا از یکدیگر و ایجاد انعطاف در زمان‌بندی اجرای آنها.

Memento: حل مشکل نگهداری وضعیت بدون افشای جزئیات داخلی یک شیء.

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *