GUI z wykorzystaniem wzorca MVC

0

Witam,
Próbuję zrozumieć idee wzorca MVC na przykładzie tworzenia interfejsu użytkownika i nie bardzo wiem czy dobrze to rozumiem.
A więc tak czy jeżeli tworzę wygląd (gui) w widoku to czy obsługę wszystkich przycisków i innych komponentów (głównie akcje i zdarzenia) należy pisać w kontrolerze?
I tak samo z obsługą danych czy należy pobierać dane z widoku w kontrolerze i w kontrolerze przesyłać je do modelu?
I w drugą stronę tak samo pobieram w kontrolerze z modelu i przesyłam do widoku?

0

Kontroler to pewna warstwa abstrakcji pomiędzy userem a aplikacją. Może on jedynie wywoływać metody modelu, jednak już nie uczestniczy w update widoku (bo robi to model).

0

przy aplikacjach desktopowych raczej użyłbym MVP

0
Tumeg napisał(a):

Kontroler to pewna warstwa abstrakcji pomiędzy userem a aplikacją. Może on jedynie wywoływać metody modelu, jednak już nie uczestniczy w update widoku (bo robi to model).

Czyli jak pobieram dane od użytkownika to w kontroler z widoku i przesyłam do modelu a jak wyświetlam dane to pobieram w widoku bezpośrednio z modelu?

0

Czyli jak pobieram dane od użytkownika to w kontroler z widoku i przesyłam do modelu a jak wyświetlam dane to pobieram w widoku bezpośrednio z modelu?

Jeżeli dobrze zrozumiałem Twoją składnię to odpowiedź brzmi TAK :)

Ja używam MVP(tak mi się wydaje:)).
Czyli gui jest maksymalnie "głupie". Ma jedynie publiczną metodę/metody update gdzie w argumencie przyjmuje model. Na eventy od użytkownika(klikanie przycisków itd.) podpinam presenter(czyli też jest maksymalnie odchudzone). Można powiedzieć, że zawiera jedynie metodę/metody publiczną update(FooModel model) oraz proste listenery. Gui często "chowam" za interfejsem, aby nie mieć cyklicznych zależności.
Model również jest głupi a do tego niezmienny. Jeżeli przyjdzie coś z "systemu" to odbiera to presenter, "mieli", ewentualnie powiadamia gui(tworząc nowy model).
Presenter z jednej strony odbiera dane od użytkownika a z drugiej strony robi update gui.

Z którego wzorca skorzystasz, nie ma to znaczenia. Ważne żeby oddzielić od siebie komponenty. Kiedyś np. zmieniła mi się specyfikacja i zamiast message z JMS musiałem odbierać ramki UDP. Dzięki skorzystaniu z MVP musiałem podmienić "tylko" presenter, model oraz gui pozostały niezmienione.

1 użytkowników online, w tym zalogowanych: 0, gości: 1