MVVM
Model View ViewModel או MVVM היא תבנית ארכיטקטורה בהנדסת תוכנה שתוכננה על ידי מיקרוסופט. התבנית מהווה המשך לתבניות הנדסה קודמות בסביבת UI שהן MVC ו-MVP. מטרת התבנית היא ליצור סדר באפליקציות UI ולשמור על עקרונות תכנות נכון כמו SRP ואפילו שאר עקרונות SOLID.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/MVVMPattern.png/500px-MVVMPattern.png)
MVVM לא נוצרה עבור טכנולוגיה ספציפית אבל מקובלת מאוד בסביבת XAML בפרט ושפות Markup בכלל, ולמעשה היא סוג של תקן בפיתוח ל-WPF ,UWP, ובאופן חלקי גם ב Angular החל מגרסה 2, שכן פופולריות השיטה הכניסו את העקרונות לשימוש גם בסביבת WEB.
עקרונות התבנית
עריכהעקרונות התבנית הם מבנה של:
- Model - מודל מתאר על האובייקטים שמהווים את ה-Data של התוכנית. (הלוגיקה)
- View - החלק האחראי על הגרפיקה וממשק המשתמש. (ה-UI - User Interface), כמו כן הוא מחזיק מופע של ה-ViewModel.
- ViewModel - החלק אשר מהווה רכיב תקשורת בין החלקים ומחזיק רכיבי לוגיקה של UI. מחזיק מופע של Model.
הרעיון הוא הפרדה מוחלטת בין ה-View לבין ה-Model כשהתקשורת ביניהם היא באמצעות מנגנוני Commands להעברת פקודות\מסרים, ו-Data Binding בין ה-View ל-ViewModel כדי להציג נתונים.