MVVM Design Pattern
معماری نرمافزاری یک ساختار سازمانی هست که نحوه تقسیم و ارتباط بین اجزای یک سیستم نرمافزاری رو تعیین میکنه. هدف اصلی معماری نرمافزاری ایجاد ساختاری قابل نگهداری، قابل تست، و قابل توسعه برای توسعهدهندگان هست. این ساختار به بهترین شکل ممکن اجزای سیستم رو بههم متصل میکنه و به سازماندهی کد به نحوی موثر کمک میکنه.
سلام خدمت دوستان و همراهان عزیز مجموعه آموزشی فرکیان تک
امیدواریم که حال شما عزیزان عالی باشه
توی این مقاله قراره با هم یه نگاهی به معماری MVVM داشته باشیم. در آینده این معماری رو در زبان کاتلین بررسی خواهیم کرد.
مقدمه به MVVM:
MVVM یک معماری نرمافزاری هست که برای تقسیم کارها و کدگذاری در برنامههای کاربردی ایجاد شده. این معماری، اصولی رو برای جدا کردن بخشهای مختلف یک برنامه ارائه میده، تا کد قابل نگهداری، قابل تست، و قابل توسعه باشه.
اجزاء اصلی MVVM:
مدل (Model):
مسئول مدیریت دادهها و منطق کسب و کار.
بر اساس اینجا که دیتا از کجا میاد و چگونه آپدیت میشه.
نمایش (View):
مسئول نمایش داده به کاربر.
بیشترین بخش گرافیکی برنامه و اینترفیس کاربری رو ایجاد مکنه.
ویو-مدل (ViewModel):
واسطی بین مدل و نما.
آنچه رو که مدل ارائه میده رو به قالبی تبدیل میکنه که مورد نیاز نما باشه.
تصمیمات مربوط به نما و لازمههای نمایشی در این لایه اتفاق میفته.
مسئولیت مدیریت وضعیت نمایش (UI State) رو بر عهده داره.
جریان کار MVVM:
کاربر اقدامی انجام میده.
نما این اقدام رو دریافت میکنه و یک دستور به ویو-مدل میفرسته.
ویو-مدل داده مورد نیاز رو از مدل دریافت کرده و اونها رو به قالبی تبدیل میکنه که نما بتونه نمایش بده.
نما داده رو از ویو-مدل دریافت میکنه و نمایش اونها رو به روزرسانی میکنه.
مزایای MVVM:
تفکیک مسئولیت:
هر بخش از کد (مدل، نما، و ویو-مدل) مسئولیت خودش رو داره و از بقیه جدا هست.
این تفکیک کمک میکنه تا کد سازگارتر، تستپذیرتر، و قابل نگهداریتر باشه.
قابلیت تست:
به راحتی میتونین ویو-مدلها رو تست کنین.
مدل و نما نیز جداگانه قابل تست هستن.
توسعهپذیری:
با توجه به تفکیک مسئولیت، امکان افزودن ویژگیها و تغییرات به سرعت امکانپذیر هست.
هماهنگی خوب با تکنولوژیهای مدرن:
MVVM به خوبی با تکنولوژیهای جدید مانند دیتابایندینگ، رویدادهای دوطرفه (Two-Way Data Binding) و … سازگار هست.