MVVM - Sorumluluklar
MVVM deseni üç bölümden oluşur - Model, Görünüm ve ViewModel. Başlangıçtaki geliştiricilerin çoğu, bir Model, View ve ViewModel'in neyi içermesi veya içermemesi gerektiği ve her bir parçanın sorumluluklarının neler olduğu konusunda biraz kafa karışıklığı yaşıyor.
Bu bölümde, ne tür bir kodun nereye gittiğini açıkça anlayabilmeniz için MVVM modelinin her bir parçasının sorumluluklarını öğreneceğiz. MVVM, aşağıdaki şekilde gösterildiği gibi gerçekten istemci tarafı için katmanlı bir mimaridir.
Sunum katmanı, görünümlerden oluşur.
Mantıksal katman, görünüm modelleridir.
Sunum katmanı, model nesnelerinin birleşimidir.
Bunları üreten ve devam ettiren istemci hizmetleri, ya iki katmanlı bir uygulamada ya da servis çağrıları aracılığıyla uygulamanıza yönlendirilmiş erişimdir.
İstemci hizmetleri resmi olarak MVVM modelinin bir parçası değildir, ancak daha fazla ayrım yapmak ve yinelenen koddan kaçınmak için genellikle MVVM ile birlikte kullanılır.
Model Sorumlulukları
Genel olarak model, anlaşılması en basit olanıdır. Uygulamadaki görünümleri destekleyen istemci tarafı veri modelidir.
Bellekte veri barındırmak için özelliklere sahip nesnelerden ve bazı değişkenlerden oluşur.
Bu özelliklerden bazıları diğer model nesnelerine başvurabilir ve bir bütün olarak model nesneler olan nesne grafiğini oluşturabilir.
Model nesneleri, WPF'de veri bağlama anlamına gelen özellik değişikliği bildirimlerini yükseltmelidir.
Son sorumluluk, isteğe bağlı olan doğrulamadır, ancak INotifyDataErrorInfo / IDataErrorInfo gibi arabirimler aracılığıyla WPF veri bağlama doğrulama özelliklerini kullanarak doğrulama bilgilerini model nesnelerine gömebilirsiniz.
Sorumlulukları Görüntüle
Görünümlerin temel amacı ve sorumlulukları, kullanıcının ekranda gördüklerinin yapısını tanımlamaktır. Yapı, statik ve dinamik parçalar içerebilir.
Statik bölümler, bir görünümün oluşturduğu denetimlerin denetimlerini ve düzenini tanımlayan XAML hiyerarşisidir.
Dinamik kısım, Görünümün parçası olarak tanımlanan animasyonlara veya durum değişikliklerine benzer.
MVVM'nin birincil amacı, görünümde arkasında hiçbir kod olmaması gerektiğidir.
Görünüşte arkasında bir kod olmaması imkansızdır. Görünüşe göre en azından kurucuya ve bileşeni başlatmak için bir çağrıya ihtiyacınız var.
Buradaki fikir, olay işleme, eylem ve veri işleme mantık kodunun View'da arkasındaki kodda olmaması gerektiğidir.
Ayrıca, UI öğesine referans olması gereken herhangi bir kodun arkasındaki koda girmesi gereken başka tür kodlar da doğal olarak görünüm kodudur.
ViewModel Sorumlulukları
ViewModel, MVVM uygulamasının ana noktasıdır. ViewModel'in birincil sorumluluğu, görünüme veri sağlamaktır, böylece görünüm bu verileri ekrana koyabilir.
Ayrıca kullanıcının verilerle etkileşime girmesine ve verileri değiştirmesine izin verir.
ViewModel'in diğer önemli sorumluluğu, bir görünüm için etkileşim mantığını kapsüllemektir, ancak bu, uygulamanın tüm mantığının ViewModel'e girmesi gerektiği anlamına gelmez.
Kullanıcıya veya görünümdeki herhangi bir değişikliğe bağlı olarak doğru şeyin gerçekleşmesini sağlamak için çağrıların uygun şekilde sıralanmasını sağlayabilmelidir.
ViewModel, farklı bir görünüme ne zaman gitme zamanının geldiğine karar vermek gibi herhangi bir gezinme mantığını da yönetmelidir.