MVC vs MVP
Model View Controller (znany również jako MVC) to wzorzec o charakterze architektonicznym stosowany szczególnie w inżynierii oprogramowania. Ten szczególny wzorzec służy do wyodrębnienia tak zwanej „logiki domeny” - która jest po prostu logiką aplikacji dla użytkownika. Jest odizolowany od danych wejściowych i prezentacji (znany jako GUI) i umożliwia niezależny rozwój.
Model View Presenter (znany również jako MVP) to bezpośrednia permutacja MVC. Jest to wzorzec oprogramowania (a dokładniej wzorzec projektowania interfejsu użytkownika) zaprojektowany specjalnie w celu ułatwienia testowania automatycznych jednostek i ulepszenia tak zwanego oddzielenia problemów w logice prezentacji. Rozdzielenie problemów jest w zasadzie procesem, w którym program komputerowy jest dzielony na odrębne funkcje, które się nie pokrywają, pod względem sposobu działania.
Część modelowa MVC jest zasadniczo wzorem, który reprezentuje dane poprzez określone domeny, dane użyte do umożliwienia działania aplikacji. Część widoku przekształca model w interakcję odpowiednią dla użytkowników - zwykle jest to element interfejsu użytkownika. Wreszcie część kontrolera naj trafniej odbiera dane wejściowe. Podejmując decyzje dotyczące obiektów znalezionych w modelu, kontroler służy jako katalizator odpowiedzi.
Część modelowa MVP określa dane, które mają być wyświetlane (lub obsługiwane) w interfejsie użytkownika. Część widoku wyświetla dane zdefiniowane w modelu i wysyła polecenia użytkownika (znane jako zdarzenia) do prezentera (który będzie działał na podstawie tych danych). Prezenter działa zatem na model i jego widok. Jako taki może pobierać dane z repozytoriów (znalezionych w modelu), kontynuować dane i formatować je, aby można je było łatwo wyświetlić w widoku.
Istnieją różne warianty MVC. W związku z tym przepływ sterowania odbywa się w bardzo ścisłej kolejności: najpierw użytkownik wejdzie w interakcję z interfejsem (na przykład naciskając przycisk myszy), a następnie kontroler zajmie się zdarzeniem wejściowym i zmieni je w odpowiednia akcja użytkownika. Następnie kontroler powiadamia model o tym, co zrobił użytkownik, co najprawdopodobniej spowoduje zmianę jego stanu (na przykład jako aktualizację). Widok następnie zadaje pytanie modelowi w celu wygenerowania interfejsu użytkownika. Na koniec interfejs użytkownika czeka na instrukcje, które zrestartują cykl.
Streszczenie:
1. MVC to wzorzec architektoniczny izolujący logikę domen; MVP jest potomkiem MVC zaprojektowanym, aby pomóc w testowaniu automatycznych urządzeń i poprawić rozwiązywanie problemów.
2. W odniesieniu do MVC model reprezentuje dane, widok przekształca model w przyjazną dla użytkownika interakcję, a kontroler otrzymuje dane wejściowe; w odniesieniu do MVP model definiuje dane, widok wyświetla je, a prezenter działa na model i jego widok.