Zajmuję się tworzeniem aplikacji WPF przy użyciu wzorca MVVM. Używam biblioteki MVVM Light i próbuję również użyć wtryskiwacza zależności (rozważam Ninject i Unity).MVVM: Komunikacja między modelem i ViewModels
Przeczytałem wiele artykułów na blogu i jestem bardzo zdezorientowany "prawidłowym" sposobem komunikowania się moich klas ze sobą. W szczególności nie wiem, kiedy stosować Dependency Injection i kiedy polegać na wzorcu mediatora.
Rozważmy przykład. Mam ViewModel, nazwijmy to DataViewModel i klasę danych, która dostarcza pewnego rodzaju danych. Jak lepiej się między nimi komunikować:
A. Wprowadzić zależność do DataViewModel z interfejsem IData? W ten sposób dane nie będą musiały polegać na Messengerze, ale będą musiały dostarczyć zdarzenie, jeśli dane się zmienią, a ViewModel będzie musiał je zasubskrybować.
B. Polegać na wzorcu mediatora (zaimplementowanym w MVVM Light jako Messenger) i wysłać wiadomości między Modelem a ViewModel? W ten sposób nie będzie konieczne stosowanie Dependency Injection, ponieważ cała komunikacja będzie oparta na wiadomościach.
Co więcej, czy moje ViewModels wstrzyknęłyby zależności innym ViewModels, czy lepiej byłoby polegać na komunikatorze? Jeśli pierwszy, czy konieczne byłoby zdefiniowanie osobnego interfejsu dla każdego ViewModel? Myślę, że zdefiniowanie interfejsu dla każdej maszyny wirtualnej będzie dodatkową pracą, ale może warto.
Teraz rozumiem ... ale potrzebowałem trochę czasu, aby przyzwyczaić się do zastrzyku zależności i usług :) Dzięki! – madbadger