MVVM چیست؟
Model-View-ViewModel
یک الگوی طراحی نرم افزاری است که برای جدا کردن منطق برنامه و کنترل رابط کاربری ساخته شده است.
MVVM همچنین به عنوان model-view-binder شناخته می شود.
کجا استفاده میشود؟
- Windows Presentation Foundation (WPF)
- Microsoft WPF internet equivalent multimedia plug-in
- Android
MVVMتشکیل میشود از:
1. View:
مجموعه عناصر قابل مشاهده است که ورودی کاربر را نیز دریافت می کند.
2. ViewModel:
بین لایه های View و Modelقرار دارد.
3. Model:
منطق برنامه را در خود جای داده است.
مزایا:
· کاهش پیچیدگی.
· جداسازی طراحی و توسعه.
· تزریق وابستگی.
· کار مشترک.
· استفاده مجدد از کد.
· سهولت آزمایش.
معایب:
· برخی فکر می کنند که برای UI های ساده ، MVVM می تواند بیش از حد باشد.
· به طور مشابه در موارد بزرگتر ، طراحی ViewModelدشوار است.
· اشکال زدایی هنگامی که اتصالات داده پیچیده ای داریم، کمی دشوار خواهد بود.
تفاوت های کلیدی بین MVC و MVVM:
1. در MVC، controller نقطه ورود به برنامه است، در حالی که در MVVM، view نقطه ورود به برنامه است.
2. مؤلفه مدل MVC می تواند به طور جداگانه از کاربر آزمایش شود، در حالی که MVVM برای آزمایش واحد جداگانه آسان است و کد دارای رویداد محور است.
منابع:
· https://www.tutorialspoint.com/mvvm/mvvm_advantages.htm
· https://stackoverflow.com/questions/883895/what-are-the-problems-of-the-mvvm-pattern
· https://www.tutorialspoint.com/mvvm/mvvm_advantages.htm
#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی