معماری MVVM :
این الگو توسط مایکروسافت معرفی شد و بعدها مثل MVCبه دنیای وب پا گذاشت و استفاده از این الگو بین فریم ورک های جاوا اسکریپت رایج شد. این الگو ازسه بخش:
ا Model: مدل مرکز دیتای برنامه است و وظیفه نگهداری، حفظ و ارائه اطلاعات مورد نیاز را عهده دار است . درواقع مدل منطق مرتبط با دادههای اپلیکیشن است که شامل POJO ،کلاسهای پردازشی API، پایگاه داده و غیره می باشد.
ا View : شامل رفتارها و سرویسهایی( مثل رویدادهای کلیک، لمس) است که طی آن اطلاعات مدل میتواند تغییر کند.
ا View model : در واقع یک Object است که عملکرد منطق View را بسته به نتیجهی عملیات Modelشرح میدهد و میتوان آن را یک مدل رفتاری از View محسوب کرد. این بخش میتواند شامل مواردی مانند نمایش بارگذاری ، خطا، صفحات خالی و غیره باشد . این بخشها می توانند برنامه را به سه بخش اصلی تقسیم کنند و همچنین می توانند بهصورت جدا توسعه داده شوند تا وابستگی بخشها به یکدیگر کم شده و همچنین توسعه موازی قابل اجرا باشد.
در واقع MVVM با ایجاد یک منطق کسبوکار یا منطق عقب پایان (مدل داده )تفکیک توسعه رابط کاربر گرافیکی را آسان میکند . مدل View در MVVM یک مبدل ارزش است . معماری MVVM برای استفاده از توابع اتصال پذیری دادهها درWPF طراحیشده است. انتقادی که از معماری MVVM وجود دارد این است که وجود سربار در اجرای Overkill برای عملیاتUI ساده در این معماری است ، بههمین دلیل برای برنامههای بزرگتر، تعمیم دادن View modelسختتر میشود و گاهی نیز غیرممکن میگردد. علاوه بر این با استفاده از این مدل معماری در برنامههای بزرگ اتصال دادهها میتواند به مصرف حافظه قابلتوجهی منجر شود و حافظه زیادی را اشغال کند.
منابع :
https://blog.jeremylikness.com/blog/model-view-viewmodel-mvvm-explained/