ההבדל בין MVVM ו- MVP ההבדל בין

Anonim

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

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

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

מבנה יישומי תוכנה

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

החלטה על ארכיטקטורה של יישום תוכנה היא קריטית שכן היא לא חלק קל, הניתן לשינוי של יישום שפותח כבר; ולכן יש לקבוע את הדפוס האדריכלי לפני תחילת התכנות.

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

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

->

אדריכלות דפוסי דגם View Controller (MVC)

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

המסגרות החדשות יותר, דוגמת ג'נגו עבור פייתון וריילס (Ruby on Rails), מתמקדות היטב בפריסה מהירה, ולכן MVC תופסת את נתח השוק כאטרקציה הגדולה בדפוסים אדריכליים.

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

  • דגם
  • מטפל בנתונים ובהיגיון העסקי ויש לא
  • תלות בין דגם

לבין Controller < או הצג. View מציג את הנתונים למשתמש בתבנית הנתמכת ואת הפריסה הנדרשת, וכאשר Controller מקבל בקשות משתמש (לאחזור נתונים), הוא קורא למשאבים הרלוונטיים הדרושים כדי להשלים את הבקשה. בוא נחיל דפוס זה על בניית חנות ספרים מקוונת. משתמשים יכולים לחפש, להציג, להירשם ולקנות ספרים, כמו גם לנהל את הפרופילים שלהם ואת רשימות הספרים. כאשר משתמש לוחץ על קטגוריית SCI-FI, כל הספרים הקשורים צריכים להופיע כזמינים.

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

Controller

'בימוי התנועה'.

עבור דוגמה זו, Controller נקרא controller_books. php ו- דגם (e.g model_books. php) מטפל בנתונים ובהיגיון הקשורים לספרים. לבסוף, שונה צפיות

יידרש, כמו בעת הוספת ספרים לעגלת הקניות המקוונת או בעת הצגת פרטי הספר עם תמונות וביקורות. controller_books. php מקבל את הפעולה (בקשת משתמש) מה- Controller

(e index).

Controller_books. php מנתח את הבקשה וקורא את model_books.

<הנתונים> כדי להחזיר את רשימת ספרי ה- SCI-FI. האחריות של דגם היא לספק את המידע, תוך שימוש בכל לוגיקה שהוחלה (באמצעות מסנני חיפוש). Controller ולאחר מכן לוקח את המידע ומעביר אותו לרלוונטי View (תצוגת חיפוש, תצוגת הדפסה, תצוגת פרטים וכו ') והמידע מוצג (באמצעות תצוגה >) למשתמש שיזם את הבקשה.

זהו הבסיס של תבנית MVC, אשר פיתחה שינויי גיוון של דפוסי הארכיטקטורה, כגון מודל תצוגת-תצוגה (MVP), דגם-View-ViewModel (MVVM), מודל הירארכי- View-Controller ((MVP), ו- Model-View-Adapter (MVA) וכו ' תבנית MVP דגם-View-Presenter (MVP) תבנית MVP בסביבה כבר זמן מה הוא גרסה של MVC. זה תוכנן במיוחד עבור אוטומציה הבדיקה שבו המטרה היתה להגדיל את כמות הקוד שניתן לבדוק באמצעות אוטומציה, ואת התבנית כתובות כמה בעיות עם שכבת המצגת, בידוד ההיגיון העסקי מן ממשק המשתמש. המסך הוא View, הנתונים שהוא מציג הוא דגם, ואת המציג hooks את השניים יחד. MVP כולל את המרכיבים הבאים עם אחריות נפרדת:

דגם

(מגדיר את הנתונים שיוצגו)

תצוגה

(מציג את הנתונים מהמודל ומנתב בקשות משתמשים אל מגיש). מציג

(מציג דף אינטרנט) מציג ומנהל את פקדי הדף על ידי העברת אירועים (בקשות משתמש) אל

מגישים שיוזמו ב

  • View .
  • מגיש
  • מגיב לאירועים אלה על ידי קריאה ועדכון של דגם

כדי לשנות את View ולכן האחריות של Presenter היא כדי לקשור את דגם ו-

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

תבנית MVVM Model-View-ViewModel (MVVM) MVVM תבנית תוכננה במיוחד עבור Windows Presentation Foundation (WPF) ופלטפורמות Microsoft Silverlight, והיא יכולה להיות בשימוש על כל XAML [i] פלטפורמות. WPF היא מערכת Microsoft המפעילה ממשקי משתמש בתוכניות מבוססות Windows ושוחררה לראשונה. NET Framework 3. 0.

MVVM זוקק מ-

MVC

ובתבנית זו,

View פעילה עם התנהגויות, אירועים ומחברים של נתונים, ו- View מסונכרנת עם ViewModel (המאפשר את הפרדת המצגת וחושפת שיטות פקודות כדי לנהל ולתפעל את

דגם

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

View

  • מקבל נתונים מתוך ViewModel
  • (באמצעות מחייב נתונים ושיטות), ובזמן הריצה, View ישתנה בעת תגובה לאירועים ב- ViewModel .
  • ViewModel מתווך בין

תצוגה ו דגם ומתייחס אל View logic. הוא מתקשר עם דגם - לוקח את הנתונים מתוך דגם

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

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

ההבדל המצוין בין MVP ו- MVVM: בשני MVP ו- MVVM , View

היא נקודת הכניסה ליישום > ב MVP , יש מיפוי אחד לאחד בין

View

ו-

Presenter

  • , כאשר ב- MVVM , הקשר הוא אחד -לרבים בין View ו- ViewModel .
  • MVP משמש בעיקר עבור Windows Forms ו- Windows Phone יישומים MVVM מיועד Silverlight, WPF, Knockout / AngularJS, וכו '