עורכים גרפיים כמו Photoshop, GIMP, ויישומים רבים של ציור מסתמכים מאוד על פונקציונליות לאדו ו- Redo כדי לשפר את חוויית המשתמש. יישום תכונות אלה ביעילות יכול להיות מאתגר, במיוחד כאשר מדובר בפעילות מורכבת.תבנית עיצוב יעילה אחת לניהול פעולות לאנדו/redo היא תבנית הפיקוד.

הבנת תבנית הפיקוד

תבנית הפיקוד מדגימה בקשה כאובייקט, המאפשרת פרמטר של לקוחות עם תורים, בקשות ופעולות.זה מקלקל את האובייקט אשר מפעיל את הפעולה של זה שיודע כיצד לבצע את זה.הפרדה זו עושה ניהול פעולות לאנדו ואדום פשוט.

יישום / Redo עם תבנית הפקודה

בעורך גרפי, כל פעולה של משתמשים - כמו ציור קו, יישום מסנן או העברת חפץ - יכול להיות מיוצג כאובייקט פיקודי.כל פקודה מיישמת ממשק עם שיטות כגון FLT:0execute ()FLT:1 ו-FLT:2undo () 3 כאשר משתמש מבצע פעולה, הפקודה מבוצעת ומאוחסנים בערימה היסטורית.

כדי לא לבצע פעולה, היישום מפיץ את הפקודה האחרונה מערימת ההיסטוריה ומכנה אותה (FLT:0undo()) שיטת 1FLT:1.כדי לרדו, הפקודה היא re-executed ודוחפת בחזרה אל ערימה undo. גישה זו מאפשרת דרך נקייה, שמירה על ניהול פעולות משתמשים.

דוגמה: Workflow

  • המשתמש מבצע פעולה, כגון ציור צורה.
  • המערכת יוצרת אובייקט פקודה מתאים.
  • (ב) ,ה' (ב) , ויקרא ויקרא יט' (בראשית כ"ד).
  • הפקודה נשמרת בערימה הלא-דו.
  • כאשר המערכת לא מופעלת, היא משחזרת את הפקודה האחרונה וקוראת ל-FLT:0 (Nundo) 1 (ראה פרק 1).
  • אם יש צורך באדום, השיטה של הפקודה:0execute (הופנה מהדף 1) נקראה שוב, שחזור הפעולה.

היתרונות של שימוש בתבנית הפקודה

  • עיצוב מודולרי: כל פקודה מטביעה את ההיגיון שלה.
  • קל להרחיב: ניתן להוסיף פקודות חדשות מבלי לשנות את הקוד הקיים.
  • ניהול ללא דום / ניהול: לשמור על היסטוריה של פעולות.
  • תמיכה בפעילות מורכבת: פקודות מורכבות יכולות לקבץ פעולות מרובות.

לסיכום, תבנית הפיקוד מספקת מסגרת חזקה וגמישה ליישום תכונות לאנדו ואדום בעורכים גרפיים. על ידי ניצול פעולות כאובייקטים, מפתחים יכולים ליצור יישומים יותר חזקים ומשתנים שמגבירים את חוויית המשתמש.