جهت تماس با کارشناسان فروش کلیک نمایید

موضوع مقاله : معماري MVVM چيست؟ :

شرح :

معماري MVVM که مخفف Model-View-Viewmodel است يکي از الگو هاي معماري نرم افزار است. MVVM با ايجاد يک منطق کسب و کار يا منطق عقب پايان (مدل داده)، تفکيک توسعه ي رابط کاربر گرافيکي را آسان مي کند. مدل View درMVVM يک مبدل ارزش است به اين معني که مدل View ديد مسئول انعکاس اشيا داده از مدل است به طوري که اشيا به راحتي مديريت و ارائه شوند. MVVM توسط معماران مايکروسافت به طور خاص براي برنامه نويسي رويدادها از طريق رابط کاربري ساده طراحي شده است.
منطق در معماري MVVM :
معماري MVVM براي استفاده از توابع اتصال پذيري داده ها در WPF (اساس نمايش ويندوز) طراحي شده است. به جاي نياز به توسعه دهندگان تجربه (UX) براي نوشتن کد GUI، مي توانيد از زبان نشانه گذاري چارچوب استفاده کنيد و اتصال داده ها به مدل که توسط توسعه دهندگان برنامه نوشته شده و نگهداري مي شود را مشاهده کنيد. اين الگوي معماري تلاش مي کند تا هر دو مزاياي تفکيک توسعه عملکردي ارائه شده توسط MVC را به دست آورد.

انتقاد در معماري MVVM :
انتقاد از اين الگو به خودي خود توسط سازنده ان مطرح شده، وجود سربار در اجراي overkill براي عمليات UI ساده در اين معماري است. به همين دليل براي برنامه هاي بزرگ تر، تعميم دادن ViewModel سخت تر مي شود و گاهي نيز غير ممکن مي گردد. علاوه بر اين با استفاده از اين مدل معماري در برنامه هاي بزرگ، اتصال داده ها مي تواند به مصرف حافظه قابل توجهي منجر شود و حافظه زيادي را اشغال کند.

پياده سازي معماري MVVM :
از معماري MVVM در پياده سازي برنامه ها و فريم ورک هاي مختلفي استفاده شده است. از جمله مهم ترين فريم ورک هاي NET که از اين معماري براي پياده سازي استفاده کرده اند مي توان به DOTVVM اشاره کرد. همچنين اين معماري در فريم ورک هاي جاوا اسکريپتي مطرح مثل Vue.js و Oracle JET نيز مورد استفاده قرار گرفته است.
اما سه بخش اين الگو چه معنايي دارند؟

Model منطق مرتبط با داده هاي اپليکيشن است که شامل POJO، کلاس هاي پردازشي API، پايگاه داده و غيره مي باشد.

View لي اوت صفحه است که ويجت ها را در خود جاي داده و براي نمايش اطلاعات مورد استفاده قرار مي گيرد.

ViewModel يک آبجکت است که عملکرد منطق View را بسته به نتيجه عمليات Model شرح مي دهد و مي توان آن را يک مدل رفتاري از View محسوب کرد. اين بخش مي تواند شامل مواردي مانند نمايش بارگذاري، خطا، صفحات خالي و غيره باشد. اين بخش به شرح اقدامي که توسط کاربر از طريق ورودي متني، فشار دکمه، کشيدن انگشت يا غيره صورت پذيرفته مي پردازد
استفاده از معماري MVVM در اندرويد به جاي معماري MVP در اندرويد
براي برطرف کردن مشکلي که در بخش قبل عنوان کرديم اندرويد معماري جديدي را تحت عنوان MVVM معرفي کرده است. اين حروف مخفف Model View ViewModel هستند. براي پياده سازي اين معماري اندرويد دو تا کامپوننت به نامهاي LiveData و ViewModel را معرفي کرده است.

پياده سازي معماري MVVM با استفاده از ViewModel و LiveData نه تنها باعث مي شود مشکل ارتباط تنگاتنگ Presenter و View که در MVP وجود داشت برطرف شود، بلکه باعث مي شود ديتايي که اکتيويتي بهش نياز دارد به چرخه زندگي اکتيويتي وابسته نباشد و با از بين رفتن اکتيويتي از بين نرود.

به عبارت ديگر وقتي براي اولين بار اکتيويتي ساخته مي شود و ديتاي مورد نيازش از بک-اند گرفته مي شود اين ديتا تا زماني که اپليکيشن بسته نشده کش مي شود و براي مثال اگه کاربر گوشي رو بچرخونه و اپ در حالت افقي نمايش داده بشود از همون ديتايي که قبلا گرفته شده استفاده مي شود و ديتاي جديدي از بک-اند گرفته نمي شود.