ریحانه علیمرادی
ریحانه علیمرادی
خواندن ۱ دقیقه·۲ سال پیش

MVVM

هرچه نرم‌افزار بزرگ‌تر شود، حفظ نمای کلی سخت‌تر می‌شود. بنابراین ساختار پروژه‌ها بسیار مهم است که این به معنای جداسازی نگرانی‌ها است. درواقع می‌خواهیم رابط کاربری، کسب‌وکار و منبع داده را از هم جدا کنیم تا درک نرم افزار به راحتی و با سرعت امکان پذیر باشد و بتوان به سادگی آن را با ویژگی های بیشتر گسترش داد و آزمایش کرد. اینجاست که الگوهای طراحی معماری وارد عمل می شوند.

در برنامه های اندرویدی، MVVM محبوب ترین و مخفف مدل، نما،و نمای مدل (view ،model، و view model) است.

به عنوان مثال، برنامه دستور آشپزی زیر را در نظر بگیرید.

  • مدل، منبع داده را نشان می‌دهد که اغلب توسط یک مخزن نشان داده می‌شود و تمام داده‌ها را در یک مکان مرکزی جمع‌آوری می‌کند. این داده‌ها می‌توانند داده‌های یک پایگاه داده، یک API راه دور یا هر دو باشند.
  • نمای مدل حاوی منطق کسب‌وکار است. منطق کسب‌وکار، منطق برنامه واقعی است که عناصر رابط کاربری را به‌روز نمی کند (به عنوان مثال، فیلتر کردن یک لیست یا اعتبارسنجی ورودی کاربر). نمای مدل برای دسترسی به داده های مورد نیاز، در ارتباط مستقیم با مدل است.
  • نما قسمت قابل مشاهده برنامه است و شامل تمام عناصر رابط کاربری است. نما زمانی که باید نماهای خود را به روز کند، رویدادها را از نمای مدل دریافت می کند. نکته مهم این است که نما نباید حاوی هیچ منطق کسب‌وکار باشد و فقط باید حاوی منطق برای دستکاری مستقیم نماها باشد.

این یک الگوی قدرتمند است که نرم افزار را مقیاس پذیر، به راحتی قابل درک و قابل آزمایش می‌کند.

«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»

[1] https://www.techtarget.com/whatis/definition/Model-View-ViewModel#:~:text=Model%2DView%2DViewModel%20(MVVM)%20is%20a%20software%20design,Ken%20Cooper%20and%20John%20Gossman.

model viewviewmvvmlogicمعماری_نرم_افزار_بهشتی
شاید از این پست‌ها خوشتان بیاید