MVVM ve MVP arasındaki fark Fark

Anonim

Yazılım geliştirme amacı, kullanıcılar ve işletmeler için ihtiyaçları ve sorunları çözen çözümler üretmektir. Bunu başarmak için, Model-View-ViewModel (MVVM) ve Model-Görünüm-Sunucu (MVP) gibi farklı teknolojiler ve mimari kalıpları kullanılır.

Üretilen her şeyde olduğu gibi, ilk adım planlama ve tasarım aşamasındadır. Yazılım tasarım süreci, tercih edilen teknoloji araç setine dayanan bir şartname olabilir ve konseptten planlamaya - uygulamaya - güncellemelere ve modifikasyonlara kadar olan tüm faaliyetleri kapsayabilir.

Seçili mimari kalıpları temel alan alt düzey ve üst düzey mimari tasarımı kapsar ve tasarım kalıplarını kullanarak yeniden çözümleri haritalandırır.

Yazılım Uygulama Yapısı

Yazılım mimarisi, teknik, operasyonel ve kullanıcı gereksinimlerini karşılayan ve kodun nasıl organize edildiğini ve yönetildiğini gösteren bir uygulamanın yapısını tanımlar.

Geliştirilen bir uygulamanın kolay, değiştirilebilir bir parçası olmadığı için bir yazılım uygulamasının mimarisine karar vermek kritik önem taşır; Bu nedenle mimari kalıp, herhangi bir programlama başlamadan önce kararlaştırılmalıdır.

Mimari desenler, donanım performansı ve sınırlamaları gibi daha teknik sorunlara ve yüksek kullanılabilirliğe değinerek kapsamları çok daha geniş olduğu için tasarım modellerinden biraz farklıdır. Farklı mimari kalıplarına örnekler MVC, MVVM ve MVP'dir.

Öte yandan tasarım kalıpları, yeniden nesne tabanlı geliştirmeyi kolaylaştıran ve bir uygulamanın mimarisinden daha kolay bakım ve değiştirme biçiminde en iyi uygulamalardır.

Mimarlık Desenleri

Model İzleme Denetleyicisi (MVC)

, web uygulamaları için geliştirilen ve özellikle Java topluluğu ile doksanlı yılların ortalarından sonlarına doğru popülerlik kazanan ilk mimari kalıplardan biriydi. Django for Python and Rails (Ruby on Rails) gibi daha yeni çerçeveler, hızlı dağıtım hakkında güçlü bir odaklanmaya sahiptir; bu nedenle MVC pazar payını mimari kalıplarda büyük cazibe olarak alıyor.

Geleneksel olarak, kullanıcı arabirimi geliştirme, karmaşık mantığı işlemek için çok sayıda kod içeriyordu; bu nedenle mimari kalıpları kodu kullanıcı arabirimi (UI) düzeyinde azaltarak daha 'temiz' ve yönetilebilir hale getiriyorlardı.

Dolayısıyla, MVC deseni ile bir web uygulaması, Model

  • (veri) Görünüm
  • (verileri görüntüleme ve işleme arabirimi) Denetleyici
  • (işlemleri ve Model

, veri ve iş mantığını işler ve Model ve Denetleyici arasında hiçbir bağımlılığı yoktur veya Görünüm . Görünüm, verileri desteklenen biçimde ve gerekli düzen içinde kullanıcıya sunar ve Denetleyici , kullanıcı isteklerini alır (veri getirmek için), ilgili gerekli kaynakları çağırır isteği tamamlamak için. Bu deseni bir çevrimiçi kitap mağazası oluşturmak için uygulayalım. Kullanıcılar kitapları arayabilir, görüntüleyebilir, kaydedebilir ve satın alabilir, profillerini ve kitap listelerini yönetebilir. Bir kullanıcı SCI-FI kategorisini tıkladığında ilgili tüm kitapların mevcut olduğu şekilde görüntülenmesi gerekir.

Denetleyiciler

kitapları yöneten eylemleri (listeleme, ekleme, görüntüleme, vb.) Ele alır. Bir ana Denetleyici 'trafiği yönlendiren' birden fazla Denetleyici olabilir. Bu örnek için, Denetleyici, controller_books olarak adlandırılmıştır. php ve Model (örneğin, model_books. php) kitaplarla ilgili verileri ve mantığı işlemektedir. Son olarak, online sepete kitap eklerken veya kitap detaylarını görüntü ve incelemelerle izlerken olduğu gibi farklı Görünümler

gereklidir. controller_books. php, ana Denetleyici (örneğin, indeks. php) eylemini (kullanıcı isteği) alır. controller_books. php isteği analiz eder ve model_ kitaplarını çağırır. php (veriler) SCI-FI kitaplarının listesini döndürür. Model

sorumluluğu, uygulanan herhangi bir mantık kullanılarak (arama filtreleri kullanılarak) bu bilgiyi sağlamaktır. Denetleyici daha sonra bilgileri alır ve ilgili Görünüm (arama görünümü, yazdırma görünümü, detay görünümü vb.) Iletir ve bilgi sunulur ( Görünüm >) isteği başlatan kullanıcıya bildirir. Model-Görünüm-Sunucu (MVP), Model-Görünüm-ViewModel (MVVM), Hiyerarşik-Model-Görünüm-Denetleyicisi (Hierarchical-Model-View-Controller) gibi mimari kalıpların üremesini geliştiren MVC kalıbının temel ilkeleri budur MVP Desen Model-Görünüm-Sunucu (MVP)

MVP deseni

, bir süre civarında olmuş ve MVC'nin bir varyantıdır. Özel olarak, otomasyon yoluyla test edilebilen kod miktarını artırmak amacıyla test otomasyonu için tasarlanmıştı ve desen iş mantığını kullanıcı arayüzünden yalıtarak sunum katmanı ile ilgili bazı konuları ele alıyor.

Ekran Görünüm'dür, görüntülediği veriler Modeldir ve Sunum Yapıcı ikisini birlikte kavrar. MVP ayrı sorumlulukları olan aşağıdaki bileşenleri içerir:

Model

(gösterilecek verileri tanımlar) Görünüm

  • (Modelin verilerini görüntüler ve kullanıcı isteklerini Sunucu).
  • Görünüm (bir web sayfası), olayları (kullanıcı istekleri) sayfaya yönlendirerek sayfa denetimlerini görüntüler ve yönetir.
  • Presenter (Görüş ve Model arasında etkileşim kurar ve onları birbirine bağlar)

Sunum Yapan , Görünüm 'da başlatılmıştır. Gösterici, bu olaylara, Model öğesini okumak ve güncelleştirmek suretiyle yanıt verir; Görünüm ve bu nedenle Sunumcunun sorumluluğu Model ve Görünüm 'ı bağlamak. MVC

ve MVP modellerine baktıktan sonra, ortaklık her iki bileşen için de ayrı sorumluluklara sahiptir ve Görünüm (UI) ve Model (veri). Bu modeller arasındaki önemli farklar, modellerin nasıl uygulanacağı konusunda daha belirgindir. MVP , gelişmiş çözümler için uygulanması gereken karmaşık bir düzen olabilir, ancak basit çözümler için uygun bir seçim olmasa da, iyi tasarlanmış bir çözüm olarak uygulanırsa kesinlikle büyük avantajlara sahiptir.

MVVM Desen Model-Görünüm-ViewModel (MVVM)

MVVM

deseni özellikle Windows Presentation Foundation (WPF) ve Microsoft Silverlight platformları için tasarlandı ve tüm XAML [i] platformlarında kullanılmıştır. WPF, Windows tabanlı programlarda kullanıcı arabirimleri oluşturan ve ilk olarak.NET Framework 3'te piyasaya sürülen bir Microsoft sistemidir. 0.999 MVVM

MVC

dan rafine edildi ve bu desende Görünüm , davranışlar, olaylar ve veri bağlama ile etkindir ve Görünüm , ViewModel (sunuya ayrılmayı sağlar ve yöntemleri ortaya çıkarır) ile senkronize olur Model . MVVM , üç temel bileşenden oluşur: Model

(doğrulama ve iş mantığıyla verileri temsil eder) Görünüm > (Görünüm, kullanıcının ekranda gördüklerini yapısını, düzenini ve görünümünü tanımlamasından sorumludur.İdeal olarak, görünüm yalnızca iş mantığı içermeyen sınırlı bir kod arkasında XAML ile tanımlanır.

  • View ve
  • ViewModel arasındaki bağlama, Model'i ve ViewModel'i Görünümle senkronize etmek için görüntüler) ViewModel (Görünümü, e Modeli ve verileri (Model) işlemek için kullanılan yöntemleri ve komutları gösterir. Görünüm
  • , (veri bağlama ve yöntemlerle) ViewModel

'dan veri alır ve çalışma zamanında Görünüm , içindeki olaylara cevap verirken değişir. ViewModel . ViewModel Görünüm

ve Model arasında arabuluculuk yapar ve Görünüm mantığını işler. Model verileriyle - Model verilerek ve onu görüntülemek için Görünüm 'a sunarken Model ile etkileşime girer. Bu bileşenlerin tamamı birbirinden ayrılmış olup bağımsız olarak onlarla çalışmak, birim testini izole etmek ve diğer bileşenleri etkilemeden bunları takas etmek için daha fazla esneklik sağlamaktadır. Bu yapı, geliştiricilerin çözümün farklı yönlerini aynı anda çalışmasına olanak tanıyarak

Model

ve diğer bileşenlerin bağımsız olarak gelişmesine olanak tanır. Örneğin, tasarımcılar Görünüm üzerinde çalıştıklarında, diğer bileşenlere erişmek zorunda kalmadan basitçe veri örnekleri üretirler. Bu, Görünüm öğesinin XAML'de uygulanması nedeniyle, kullanıcı arabiriminin kolay yeniden tasarlanmasını kolaylaştırır. Daha önce MVP

ile belirtildiği gibi, basit çözümlerin mimari ve tasarım kalıplarına, "Hello World!"Herhangi bir kalıptan izlenemeyecek kadar basit; Bununla birlikte, daha fazla özellik, işlev ve bileşenler tanıtıldığında, uygulamanın karmaşıklığı artar ve bu nedenle yönetilmesi gereken kod miktarı artar. Özet Kullanıcı arabirimi geliştirme sürecinin başlangıcından bu yana tasarım kalıpları geliştirme sürecini kolaylaştırmak, uygulamaları daha ölçeklenebilir hale getirmek ve daha kolay test etmeyi kolaylaştırmak için gittikçe daha popüler hale gelmektedir.

MVP ve MVVM Desenleri arasındaki illüstrasyon farkı:

MVP

  • ve MVVM modellerinde Görünüm , uygulamaya giriş noktası olan > MVP 'da
  • Görünüm ve Sunucu arasında birebir eşleme vardır, burada MVVM , ilişki bir Görünüm ve ViewModel arasında çok sayıda. MVP öncelikle Windows Forms ve Windows Phone uygulamaları için kullanılır ve MVVM
  • Silverlight, WPF, Knockout / AngularJS vb. Için tasarlanmıştır.