کارکرد Model و View در این دو الگو یکی است. تنها Controller با ViewModel جایگزین شده که در اینجا به شرح آن دو می پردازم:
کنترلر پس از یک چرخه نمایش دیتا و تصمیم گیری کاربر، مدل را به روز رسانی می کند و سپس مدل ویو را می سازد. یعنی ایجاد ویو مستقیما متاثر از تصمیم گیری کنترلر است. و کنترلر تصمیم می گبرد چه اطلاعاتی نمایش داده شود.
در حالی که ViewModel به وسیله یک Binder به روز رسانی ویو را انجام می دهد، اما این به چه معنی است؟
یعنی هر عنصر نمایش داده شده به یک مدل موجود در ViewModel مرتبط شده است و این ویو است که تصمیم می گیرد از کدام اطلاعات موجود در ViewModel بهره گیرد.
مقایسه Controller و ViewModel
Contoller |
ViewModel |
-
روند تولید و کد زدن ملموس تر می باشد ، زیرا دقیقا می دانیم کنترلر کجا را تحت تاثیر قرار می دهد.
|
-
ازیکViewModelبرای چند ویو می توان استفاده کرد.
-
UIDesigner و Developer می توانند به صورت موازی کار کنند
-
تغییر View بدون تغییر دادن ViewModel ممکن است.
|