منبع: chatgpt
هدف اصلی:
- Memento: برای ذخیره و بازیابی وضعیت یک شیء استفاده میشود. این الگو به شما اجازه میدهد که وضعیت فعلی یک شیء را ذخیره کنید و در آینده آن را به حالت قبلی برگردانید، بدون اینکه درونیات آن شیء برای بخشهای دیگر سیستم آشکار شود. معمولاً در پیادهسازی قابلیت “Undo” یا “Redo” استفاده میشود.
- Command: برای بستهبندی یک درخواست یا عملیات در یک شیء استفاده میشود. این الگو به شما اجازه میدهد که درخواستها، دستورات، و اقدامات را به صورت مستقل از فراخوانیکننده ذخیره و مدیریت کنید. معمولاً برای صفبندی درخواستها، اجرای دستورات در زمانهای مختلف، و ثبت عملیات به کار میرود.
مفهوم:
- Memento: بیشتر روی حفظ وضعیت تمرکز دارد.
- Command: بیشتر روی اجرای عملیات و بستهبندی آنها به عنوان دستورات مستقل تمرکز دارد.
مثال واقعی:
- Memento: در یک ویرایشگر متن، وضعیت فعلی سند (مثلاً قبل از اعمال تغییرات) را ذخیره میکنیم تا بتوانیم به حالت قبلی بازگردیم.
- Command: در یک سیستم کنترل ربات، هر حرکت ربات به عنوان یک دستور ذخیره و در صف گذاشته میشود تا در زمان مناسب اجرا شود.
مشکل حل شده:
Command: حل مشکل مدیریت دستورات و درخواستها به صورت جدا از یکدیگر و ایجاد انعطاف در زمانبندی اجرای آنها.
Memento: حل مشکل نگهداری وضعیت بدون افشای جزئیات داخلی یک شیء.
دیدگاهتان را بنویسید