تفاوت الگوی معماری MVVM و MVC چیست؟

+2 رأی
میانگین بازدید روزانه 1.342,863 بازدید

علاوه بر MVC الگوی معماری دیگری با نام Model View ViewModel (MVVM) وجود دارد، تفاوت های بین این دو الگو چیست؟

سوال جاری به یکی از جواب های این سوال مرتبط است: MVC یک الگوی طراحی (design pattern) است یا یک الگوی معماری (architecture pattern)؟
سوال 5 سال قبل در تالار برنامه نویسی توسط Saeed Zarinfam (1,273 امتیاز)

2 جواب

+2 رأی
 
بهترین جواب

کارکرد Model و View در این دو الگو یکی است. تنها Controller با ViewModel جایگزین شده که در اینجا به شرح آن دو می پردازم:

کنترلر پس از یک چرخه نمایش دیتا و تصمیم گیری کاربر، مدل را به روز رسانی می کند و سپس مدل ویو را می سازد. یعنی ایجاد ویو مستقیما متاثر از تصمیم گیری کنترلر است. و کنترلر تصمیم می گبرد چه اطلاعاتی نمایش داده شود.

در حالی که ViewModel به وسیله یک Binder به روز رسانی ویو را انجام می دهد، اما این به چه معنی است؟

یعنی هر عنصر نمایش داده شده به یک مدل موجود در ViewModel مرتبط شده است و این ویو است که تصمیم می گیرد از کدام اطلاعات موجود در ViewModel بهره گیرد.

مقایسه Controller و ViewModel
Contoller ViewModel
  • روند تولید و کد زدن ملموس تر می باشد ، زیرا دقیقا می دانیم کنترلر کجا را تحت تاثیر قرار می دهد.
  • ازیکViewModelبرای چند ویو می توان استفاده کرد.
  • UIDesigner و Developer می توانند به صورت موازی کار کنند
  • تغییر View بدون تغییر دادن ViewModel ممکن است.

 

جواب 5 سال قبل توسط kashi (7,116 امتیاز)
ویرایش 5 سال قبل توسط Saeed Zarinfam
بسیار عالی . ممنون
0 رأی

الگوی Model View Controller) MVC) یکی از اولین الگو‌هایی است که برای اپلیکیشن‌های تحت وب توسعه یافت. یک الگوی MVC به ما اجازه می‌دهد که اپلیکیشن را با جداسازی نقاط تمرکزمان گسترش دهیم که در واقع این کار باعث تسهیل تست کردن، نگهداری و گسترش‌پذیری می‌شود. معماری MVC ایجاد شد تا کد‌های سطح UI را کاهش دهد و همچنین کد را تمیز‌تر و قابل مدیریت‌تر کند.

معماری Model View ViewModel) MVVM) شکل اصلاح‌شده‌ی MVC است و اتصال دوطرفه بین View و ViewModel را پشتیبانی می‌کند.

این معماری اجازه می‌دهد که تغییرات ViewModel بطور خودکار روی View انجام شود.

مشاهده کامل مطلب...

جواب 1 هفته قبل توسط زهرا فرهانی (48 امتیاز)

سوال های مشابه

+2 رأی
3 جواب میانگین بازدید روزانه 4.18,633 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.33510 بازدید
سوال 4 سال قبل در تالار برنامه نویسی توسط mp (6,947 امتیاز)
+1 رأی
0 جواب میانگین بازدید روزانه 0.25155 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.2653 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.05103 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.23178 بازدید
+2 رأی
1 جواب میانگین بازدید روزانه 0.52916 بازدید
+3 رأی
3 جواب میانگین بازدید روزانه 1.854,080 بازدید
کانال تلگرام جواب یاب
...