חקר דפוסי העיצוב MVC, MVP ו- MVVM

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

בקר תצוגת דגם

מסגרת ה- Model View Controller (המכונה בדרך כלל MVC) מסייעת לך לבנות יישומים שקל יותר לבדוק ולתחזק. הוא מורכב משלושה מרכיבים עיקריים, כלומר:

  1. מודל - זו השכבה המייצגת את נתוני היישום
  2. תצוגה - זה מייצג את המצגת או את שכבת ממשק המשתמש
  3. בקר - שכבה זו מכילה בדרך כלל את ההיגיון העסקי של היישום שלך

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

מגיש תצוגת דוגמניות

תבנית העיצוב MVP (Model View Presenter) כוללת גם שלושה מרכיבים - הדגם, הנוף והפרזנטור. בתבנית העיצוב MVP, הבקר (ב- MVC) מוחלף על ידי המציג. בניגוד לתבנית העיצוב של MVC, המציג מתייחס חזרה לתצוגה שבגללה הלעג של הנוף קל יותר ובדיקת יחידות של יישומים הממנפים את דפוס העיצוב MVP על פני דפוס העיצוב של MVC הם הרבה יותר קלים. בתבנית העיצוב של ה- MVP המנחה מתמרן את הדגם וגם מעדכן את התצוגה. ישנן שתי וריאציות של עיצוב זה. אלה כוללים את הדברים הבאים.

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

בעוד ששתי הגרסאות הללו מקדמות את יכולת הבדיקה של לוגיקת המצגת, גרסת התצוגה הפסיבית עדיפה על פני הגרסה האחרת (בקרת פיקוח) בכל הנוגע לבדיקה בעיקר משום שיש לך את כל ההיגיון המעודכן בתצוגה במציג.

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

דגם - תצוגה - ViewModel (MVVM)

הדגם - View - ViewModel (MVVM) הוא וריאציה של דפוס העיצוב של דגם המצגת של מרטין פאולר. ה- MVVM הוא חידוד של עיצוב ה- MVC הפופולרי וה- ViewModel ב- MVVM משמש להקלת הפרדת מצגות. ב- MVVM ההיגיון נשמר בפרזנטור והתצוגה מבודדת לחלוטין מהמודל. בעוד שהמגיש אינו מודע לתצוגה, התצוגה מודעת למגיש - המגיש ב- MVVM משמש לייצוג תצוגה מופשטת של ממשק המשתמש. ראייה פסיבית מרמזת כי אין למבט ידע על המודל. בתבנית העיצוב של MVVM, התצוגה פעילה ומכילה התנהגויות, אירועים ומידע מחייב נתונים. שים לב שהתצוגה ב- MVVM אינה אחראית לניהול מידע המדינה - התצוגה מסונכרנת למדי עם התצוגה.מודל התצוגה ב- MVVM אחראי על הפרדת המצגות וחושף שיטות ופקודות לניהול מצב התצוגה ולתפעל את המודל.

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