Z mojego doświadczenia wynika, ogólnie model zależy tylko na widoku, a nie specyficzny, często jako obserwator ... jeśli ma takiego sprzęgła w ogóle.
Widok ogólnie łączy się z tym, na co patrzy, co ma sens. Trudno wymyślić widok, który można oddzielić od tego, co ogląda ... ale czasami możesz mieć częściowe sprzężenie lub coś takiego.
Kontroler często łączy się z jednym i drugim. Ma to również sens, ponieważ zadaniem jest przekształcenie widoku zdarzeń w zmiany modelu.
Oczywiście to tylko tendencja, którą zaobserwowałem i tak naprawdę nie mówi nic o żadnym konkretnym przykładzie.
Aby zrozumieć, czym jest MVC i jaka jest tendencja do łączenia, powinieneś przyjrzeć się, jak powstała MVC. Środowisko, w którym utworzono MVC, było takie, w którym „widżety” jako elementy formularza, z którymi można budować okna dialogowe, nie istniały. „Widok” był pudełkiem i rysował różne rzeczy. Widok tekstu to pole, które rysuje tekst. Widok listy był polem, które rysowało listę. „Kontroler” odebrał wszystkie zdarzenia myszy i klawiatury z systemu interfejsu użytkownika, które miały miejsce w tym widoku; nie było zdarzeń „textChanged” lub „selectionChanged”. Sterownik przejmie wszystkie zdarzenia niskiego poziomu i wygeneruje interakcję z modelem. Po zmianie model powiadamia o swoich poglądach; od tego czasu zaczęliśmy postrzegać ten związek jako „obserwatora” i to „
TO jest esencja wzoru MVC. Ponieważ tego rodzaju programowanie interfejsu użytkownika na niskim poziomie zasadniczo nie jest już wykonywane, MVC ewoluowało w wielu różnych kierunkach. Niektóre rzeczy, które noszą dziś tę nazwę, prawie wcale nie przypominają MVC i naprawdę należy je nazwać czymś innym. Nadal można go jednak używać w sensie dialogu jako całości wchodzącego w interakcję z większym obiektem. Istnieje jednak wiele lepszych alternatyw.
Zasadniczo wszystko, co MVC miało rozwiązać, dzieje się teraz w widżetach i jest to coś, z czego nie musimy już korzystać.
Dla tych, którzy myślą, że wiedzą lepiej:
http://www.codeproject.com/Articles/42830/Model-View-Controller-Model-View-Presenter-and-Mod
http://msdn.microsoft.com/en-us/library/ff649643.aspx
Jestem pewien, że jest ich więcej, ale to tylko początek listy w Google. Jak widać, model bardzo zależy od interfejsu widoku w WIELU implementacjach. Zasadniczo model jest obserwowalny, a widok jest obserwatorem.
Ale dlaczego fakty przeszkadzają ...
Artykuł już opublikowany w innej odpowiedzi obsługuje również moje stwierdzenia:
http://martinfowler.com/eaaDev/uiArchs.html
Jeśli ludzie chcą nadal mówić, że KAŻDY w branży projektowania jest w błędzie, to nie ma problemu.