C # kodlaması baxımından MVC, MVP və MVVM dizayn naxışları arasındakı fərq nədir?

"MVC, MVP və MVVM dizayn modelləri arasındakı fərq nədir" sözü üçün Google-da axtarış edsək , MVC MVP dizaynı ilə MVVM arasındakı fərqləri nəzərdən keçirən bir neçə URL əldə edə bilərik :

MVP

Mətn kodları ilə əlaqə qurmaq mümkün olmadığı hallarda istifadə edin. Windows Formaları bunun böyük bir nümunəsidir. Təqdimatı modeldən ayırmaq üçün bir natiqə ehtiyacınız var. Təqdimat məruzəçi ilə birbaşa əlaqələndirilə bilmədikdən sonra, informasiya interfeys (IView) vasitəsilə təqdimata ötürülməlidir.

MVVM

Mətnin bağlanmasının mümkün olduğu hallarda istifadə edin. Niyə? Hər bir görünüş üçün müxtəlif IView interfeyslər silinir, bu da texniki baxım üçün daha az kod deməkdir. MVVM'nin mümkün olduğu bazı örnekler WPF ve Knockout'u istifadə edərək javascript projeleridir.

MVC

Proqramın görünüşü ilə qalan hissəsi arasındakı əlaqənin həmişə mövcud olmadığı hallarda istifadə edin (və MVVM və ya MVP-dən effektiv istifadə edə bilməzsiniz). Bu, veb API-nın müştəri brauzerlərinə göndərilən məlumatlardan ayrıldığı vəziyyətin açıq şəkildə təsvirini verir. Microsoft ASP.NET MVC, belə halları idarə etmək üçün çox yaxşı bir vasitədir və çox dəqiq bir MVC quruluşu təmin edir.


Amma nəzəri cəhətdən fərqləri, eləcə də bir nümunə kodunu müzakirə edən bir məqaləni tapmadım.

Kodla birlikdə bu üç dizayn nümunəsi (MVC, MVP və MVVM) arasındakı fərqləri müzakirə edən bir məqalə varsa, çox gözəl olardı.

Mən bu üç dizayn nümunəsi (MVC, MVP və MVVM) tərəfindən həyata keçirilmiş 3 oxşar CRUD proqramının mənbə kodunu əldə etmək istərdim. Mən kodu keçə və bu üç dizayn sxeminin (MVC, MVP və MVVM) kodu yazmağı başa düşə bilərik.

Belə ki, bu üç dizayn nümunəsi (MVC, MVP və MVVM) üçün kod necə fərqlənəcəyini müzakirə edən belə bir məqalə varsa, məni bu məqaləyə göndərin.

165
18 окт. Tomas tərəfindən 18 oktyabrda təyin olundu 2013-10-18 10:55 '13 saat 10:55 'da 2013-10-18 10:55
@ 4 cavab

Əsas fərqlərdən bəziləri qısa olaraq yazıla bilər:

MVC:

Ənənəvi MVC olduğu yerdir

  • Model: məlumat modeli kimi çıxış edir
  • Görünüş: istifadəçi interfeysi ola bilən istifadəçiyə təqdimat təqdim edir
  • Controller: Görünüşün modeli yeniləmək üçün nəzarətçi çağırdığı zaman Model və Görünüş arasında qarşılıqlı əlaqəni idarə edir. Lazım gələrsə, tamaşaçı bir neçə nəzarətçiyə müraciət edə bilər.
border=0

MVP:

Ənənəvi MVC-yə bənzəyir, lakin Controller Presenter ilə əvəz olunur. Moderator, nəzarətçidən fərqli olaraq təqdimatı dəyişdirməkdən də məsuliyyət daşıyır. Normal olaraq, görüntüləmə təqdimata səbəb deyil.

MVVM

Buradaki fark, View Model'in varlığında. Bu, modelin dəyişməsi VM görünüşündə təmsil olunduğu Observer dizayn modelinin bir növüdür. Məsələn: dəyişən dəyişdirildikdə, model yalnız yenilənir, lakin görünüşdə göstərilən mətn ola bilən məlumat da yenilənir. Beləliklə, iki yollu məlumatın bağlanması var.

80
16 апр. Cavab Pritam Banerjee tərəfindən verilir Apr 16 2016-04-16 23:12 '16 'da saat 11:12 ' də 2016-04-16 23:12

Bağlantıdan böyük şərh: http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx

Əvvəl MVC'ye baxaq

Giriş ilk növbədə nəzarətçiyə deyil, görünüşünə yönəldilir. Bu giriş istifadəçi tərəfindən səhifə ilə qarşılıqlı ola bilər, ancaq brauzerə də yalnız müəyyən bir URL'nin təqdim edilməsi ola bilər. Hər halda, bəzi funksiyalarla əlaqəli nəzarətçi olur.

Nəzarətçi ilə görünüş arasında bir-bir əlaqələr var. Budur, bir nəzarətçi həyata keçirilən əməliyyata əsasən görüləcək müxtəlif növləri seçə bilər.

Nəzarətçidən görünüşə qədər bir ox yolu var. Bu, görünüşün nəzarətçi üçün heç bir məlumat və istinad etməməsi ilə bağlıdır.

Nəzarətçi bir modeli qaytarır, buna görə bilik görünüş və gözlənilən model arasında keçir, amma xidmət edən nəzarətçi deyil.

MVP - model təqdimat təqdimatı

İndi MVP modelini nəzərdən keçirin. Bəzi fərqlər istisna olmaqla, MVC-yə çox oxşardır:

Girişi təqdimatçı ilə deyil, təqdimatla başlayır.

Təqdimat və əlaqələndirici aparıcı arasında bir-bir-bir eşleme var.

Təqdimat aparıcıya aiddir. Moderator, baxımdan törədilən hadisələrə də cavab verir, ona görə də onunla bağlı olanları bilir.

Təqdimatçı modeldə göstərdiyi istənilən hərəkətlərə əsasən görünüşü yeniləyir, ancaq Görünüş modelin fərqində deyildir.

MVVM - Model görünüşü modeli

Beləliklə, bizim qarşımızda MVC və MVP nümunələri ilə MVVM modelinə baxın və hansı fərqlər olduğunu gör.

Giriş giriş modeli deyil, görünüş ilə başlayır.

Görünüşün görünüş modelinə bir keçid olduğu müddətcə, görünüş modelində görünüş məlumatı yoxdur. Buna görə fərqli fikirlər və bir baxış modeli arasında texnologiyadan hətta bir-birinə çoxlu xəritələşdirmək mümkündür. Məsələn, WPF Görünüşü və Silverlight Görünüşü eyni görünüş modelini istifadə edə bilər.

30
31 авг. cavab taha027 31 avqustda verilir . 2016-08-31 10:37 '16 saat 10:37 'da 2016-08-31 10:37' də

MVC, MVP, MVVM

MVC (köhnə)

MVP (zəif əlaqəsi səbəbindən daha modul, təqdimatçi Baxış və Model arasındakı vasitədir)

MVVM (virtual maşın və istifadəçi interfeysi komponenti arasında artıq iki tərəfli bir əlaqə var, belə ki, MVP-dən çox avtomatlaşdırılmışdır) 2019

24 авг. Cavab Uddhav Gautam 24 Avqust 2017-08-24 03:04 '17 də 3:04 2017-08-24 03:04