-
1. Data: 2011-04-28 14:11:12
Temat: MVC i wymiana danych
Od: MoonWolf <m...@p...com>
Jest sobie system pobierający z bazy (aktualnie po prostu z systemu
plików) pewne dane (na podstawie wyboru użytkownika, który ma okienko z
ich listą), dokonujący ich obróbki i wykonujący pewne czynności z
użyciem tych danych. Wymyśliłem sobie, że zrobię to jako MVC. Sama
logika wykonująca pracę z danymi jest dosyć głęboko zaszyta w modelu i
jeszcze owinięta dekoratorami dokonującymi dodatkowej obróbki tych
danych.
Pojawiła się potrzeba dodania do nich danych dostarczonych przez
użytkownika. Mogę po prostu dodać kolejny dekorator, z tym że:
* te obiekty / dekoratory nic nie wiedzą o widoku czy nawet modelu -
jak powiadomić widok, żeby wyświetlił okienko z komunikatem i polem do
wpisania czegoś?
* nie wszystkie zestawy danych będą potrzebować takiej ingerencji
* pojawią się nowe zestawy, które będą wymagały ingerencji usera (ale
być może innej - inny komunikat, innego typu dane do wpisania)
No i nie wiem jak do tego podejść. Chcę to zrobić jak najładniej i
zgodnie ze sztuką. Nie wiem jak przekazać do widoku żądanie
wprowadzenia danych, a potem je pobrać i przekazać do obiektu
wykonującego całą pracę.
W sumie to kontroler ma wiedzę na temat pozostałych elementów - z tym,
że nie bardzo mam pomysł jak to zrobić bez odpytywania modelu o to czy
(i jakie) dane będą mu potrzebne (widzę tu rozrastający sie gąszcz
ifów). Teraz po prostu dostaje z widoku żądanie wykonania operacji (z
parametrem identyfikującym zestaw danych). Przekazuje je do modelu bez
żadnego przetwarzania. Czy to dobre miejsce na 'wpięcie' się? Chociaż
to mi wygląda na zakres obowiązków modelu - w końcu to on ma wiedzieć
co mu jest potrzebne do działania.
Macie jakiś pomysły?
--
<:> Roger, MoonWolf Out <:>|Don't worry. I've got a plan.
(::) (::)|
(:) JID:m...@j...org(:)| http://karakkhaz.prv.pl
-
2. Data: 2011-04-29 07:32:29
Temat: Re: MVC i wymiana danych
Od: Darek <d...@g...com>
Hej,
Jesli chodzi o jakies zdarzenia w modelu, to IMHO powinienes spojrzec
na wzorzec observer. Dane dostarczone od uzytkownika powinien pobierac
kontroler z widoku, to on ma wiedze o modelu i widoku. Jesli widok
zamodelujesz za pomoca interfejsu to bedziesz mial kontroler
niezalezny od widoku/widokow(aczkolwiek nie wiem czy zawsze jest to
mozliwe).
Tutaj jest troche opisane na temat MVC(przyklady w JAvie, ale to nie
powinno miec znaczenia)L
http://csis.pace.edu/~bergin/mvc/mvcgui.html
Pozdrawiam
Darek