• Design Patterns,  SOLID

    Memento

    ממנטו היא תבנית עיצוב למימוש מנגנון שיחזור – כלומר לעשות undo או ctrl +z לפעולה שעשינו.  לפעמים התבנית הזו נקראת snapshot בגלל שהיא שומרת ‘תמונת-מצב’ קודמת ומאפשרת לחזור אליה.  הדרך הנוחה והמקובלת להסביר תבנית זו היא על ידי דוגמא של עורך טקסט.    נניח שיש לי עורך טקסט הממומש בקלאס בשם Editor או כפי שהוא נקרא במקור – Originator . אכניס לתוכו ערכים באופן הבא:  ואני מצפה שתהיה לי אפשרות לבטל את הפעולה / פעולות האחרונות. למשל שתהיה לי מתודה כזו:  איך הייתם מממשים מנגנון כזה?  אם למשל הייתי מוסיף לעורך שלי שדה נוסף מסוג STRING בשם prevContent ובכל פעם שאני רוצה לשנות את הערך של CONTENT הייתי שומר לפני…