Mam kilka pytań podczas projektowania architektury dla projektu wokół MVC. (Jest to projekt C ++ / Marmalade SDK, nie używam żadnego konkretnego frameworka MVC, robię go.)
W kilku artykułach (jak na oryginalnym artykule Steve'a Burbka ) wciąż czytam pojęcie „triada MVC”, co mnie denerwuje, ponieważ wziąłem tę koncepcję dosłownie. Kiedy czytam to po raz pierwszy, wyglądało na to, że aplikacja jest zbudowana wokół jednostek „triady MVC” - po jednej dla każdego elementu interfejsu, jak przypuszczałem - ale uważam, że jest to raczej mało elastyczne i myślę, że nie tak zamierzano używać MVC. Następnie, badając dalej ten problem, znalazłem kilka przykładów ścisłego połączenia kontrolera i widoku, a mianowicie relację 1-do-1 - TextEditView ma TextEditController.
Ale kiedy wracam do mojego projektu, stwierdzam, że użyteczne może być posiadanie jednego kontrolera (według „jednostki logicznej”, takiej jak AddElementController) i kilku widoków dla tego konkretnego kontrolera.
Wyraźnie myślę o czymś takim jak AddElementController, który powinien mieć interfejs użytkownika tabulatora. Czy powinienem mieć AddElementController, który ma AddElementTabView i kilka AddImageView, AddSoundView itp. Dla kart? Czy powinienem mieć inny „kontroler podrzędny” dla każdego widoku karty?
Podsumowując, i jeśli chodzi o wzorzec MVC (a nie zrozumienie / wdrożenie tego wzorca w ramach X), czy poprawne jest posiadanie kilku widoków dla kontrolera, czy też każdy widok powinien mieć swój konkretny kontroler?
Ponadto, czy poprawne jest przechowywanie niektórych informacji o stanie na kontrolerze, czy też powinno to być bezpaństwowe (co oznacza, że stan powinien być umieszczony w jakimś modelu stanu spoza domeny)?
Dzięki wszystkim z góry.
źródło