MVC pogubiłem się

0

Będę wdzięczny bo się pogubiłem dość mocno...

  1. Czy w widoku ustawiam też napisy(napis przycisku albo tytuł ramki) czy to robi kontroler?
  2. Czy kontroler jest odpowiedzialny za obrabianie danych? Np pobieram kilka wartości z modelu i gdy metoda z widoku przyjmuje tablice, to kontroler te dane przygotowuje?
2
  1. W widoku oczywiście, chyba ze robisz jakąś internacjonalizacje, wtedy trochę inaczej.
  2. Nie. Tym zajmuje się raczej jakiś serwis wołany przez kontroler. Kontroler zajmuje się przekazywaniem akcji pomiędzy widokiem a modelem (a jeśli to MVP to jeszcze przekazywaniem informacji o zamianach w modelu do widoku).
0

Dziękuję @Shalom.

"1. W widoku oczywiście, chyba ze robisz jakąś internacjonalizacje, wtedy trochę inaczej."
Akurat wszystko(teksty do komponentow, komunikaty itp ) trzymam w ResourceBundleList. W takim wypadku powinien ustawiać teksty analogicznie jak w przypadku ustawiania akcji - wywołujac w kontrolerze metody z widoku na wzór 'setSolutionFor..."?

"2. Nie. Tym zajmuje się raczej jakiś serwis wołany przez kontroler. Kontroler zajmuje się przekazywaniem akcji pomiędzy widokiem a modelem (a jeśli to MVP to jeszcze przekazywaniem informacji o zamianach w modelu do widoku)."
Taki serwis oczywiście miałby należeć do pakietu modelu?

  1. Jeśli niektóre metody z modelu wyrzucają wyjątki to wtedy obsługuje to w kontrolerze i przykładowo wywołuje z widoku metodę, która wyświetla komunikat, któremu treść nadaje z kontrolera?

  2. Jeżeli pakiety z zasobami są wykorzystywane we wszystkich warstwach(model, view, controller), to czy powieniem umieścić jakąś klasę, która trzyma publicznie i statycznie te zasoby? Jeśli tak to czy powieniem to umieścić w modelu?

0
  1. Nie no nadal robiłbym to w widoku, ale labelki ustawiał na zasadzie Messages.getTranslatedLabel(key, locale) albo coś w tym stylu
  2. Tak
  3. Jeśli chcesz userowi wyswietlić jakiś ładny komunikat to tak
  4. Nie bardzo rozumiem o co pytasz.
0

Dziękuje @Shalom

Jeszcze jedno nie daje mi spokoju... :D

Jeżeli program będzie sporawy, to w jaki sposób to zorganizować? Klasa View, która zawiera dodawanie listenerów do wszystkich okien i dla każdego okna metodę, która je wyświetla będzie bardzo duża... . Jeśli klasy okien będą publiczne i w klasie View będę po prostu oddawał referencję do nich? Czy tak należy rozwiązać ten problem? Do okien mogę napisać interfejs z metodą która wyświetla, ale do dodawania listenerów to będzie raczej bezsensu ponieważ to będzie w 0% elastyczne.

0

Nie bardzo rozumiem. Czy ty chcesz mieć wszystko w 3 klasach, Model, View i Controller? o_O Kto ci broni podzielic to jak człowiek na kawałki? Przecież mozesz mieć w aplikacji wiele kontrolerów jak i wiele Widoków.
Nie rozumiem też za bardzo o co chodzi ci z tymi listenerami.

0

Chciałem, żeby w jednej klasie można było zarządzać wszystkim. Inaczej jak to taki bałagan mieć? W klasie View zarządzasz widokiem, a w Model modelem. Jak mam mieć taki bałagan to po co ten wzorzec? :D Oczywiście dziele to na części, ale potem łącze w jeden interfejs.

Jeśli chodzi o listenery, no to udostępniam kontroloerowi metody dodajace listenery do componentów, np w kontrolerze ustalam reakcje na np wciśniecie przycisku jakiegoś. A to nie tak ma być? To ja już nie wiem :D

0

nie no dobra, ale jak masz przykładowo kilka modeli? To chcesz te kilka modeli wciepać w jedną klasę?

0

Aha

0

@Lukaś ty tak poważnie? o_O To moze weź w ogóle wszystko do jednej klasy, bo czemu nie? A myślałeś o tym żeby np. mieć jeden Kontroler i jeden Widok dla jednego okienka/dialogu? Gdzie tu widzisz jakis bałagan? Bałagan to jest jak masz jedna klasę na 10k linii kodu.

0

@Lukaś: ale to właśnie o to chodzi, żeby było pofrakcjonowane, łatwiej taki kod utrzymać i łatwiej podmieniać komponenty bez wiedzy użytkownika danej aplikacji. Bałagan w MVC jest pozorny.

0

A może ktoś mógłby pochwalić się własnym kodem?

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