"Cześć, Amigo!"

"Cześć, Bilaabo!"

„Jesteś już solidnym programistą. Więc dzisiaj będziemy mieli lekcję na temat MVC”.

„MVC oznacza ModelWidokKontroler . Jest to architektoniczny wzorzec projektowy dla dużych aplikacji, w którym aplikacja jest podzielona na trzy części”.

„Pierwsza część zawiera całą logikę biznesową aplikacji . Ta część nazywa się modelem . Zawiera kod, który robi wszystko, do czego aplikacja została stworzona. Ta część jest najmniej zależna od pozostałych”.

„Druga część zawiera wszystko, co dotyczy wyświetlania danych użytkownikowi . Ta część nazywa się widokiem . Zawiera kod sterujący wyświetlaniem okien, stron, komunikatów itp.”

„Trzecia część zawiera kod, który przetwarza działania użytkownika . Wszelkie działania użytkownika mające na celu zmianę modelu powinny być obsługiwane tutaj. Ta część nazywa się Kontroler   .

„Podejście to pozwala niezależnie tworzyć trzy rzeczy:  logikę programu (model) , mechanizm wyświetlania danych programu użytkownikowi (widok) oraz moduł obsługi danych wejściowych/działań użytkownika (kontroler) ”.

„Aplikacje często mają kilka widoków . Jest to normalne. W Excelu możesz przeglądać dokładnie te same dane, zarówno jako liczby, jak i diagramy. W grach możesz przeglądać wydarzenia z perspektywy pierwszej osoby, trzeciej osoby lub widoku mapy, a także wielu innych Wszystkie te widoki są różnymi widokami dla jednego Modelu ”.

„Cały kod, który decyduje o tym, co zmienić w modelu w odpowiedzi na działania użytkownika, jest gromadzony w Kontrolerze . Na przykład, jeśli użytkownik zdecyduje się zamknąć program, wówczas należy zapisać dane modelu do pliku na dysku. Lub jeśli użytkownik wprowadzi nowe dane, musisz dodać je do modelu. Model powiadomi wtedy wszystkie widoki o zmianach danych, więc będą wyświetlać tylko aktualny stan danych.

"Powtórz to."

„Z perspektywy programisty Java możemy powiedzieć, że model, widok i kontroler to trzy grupy klas, gdzie:”

a)  każda część ma swój własny cel;”

b)  związki między klasami jednej grupy są bardzo silne;”

c)  relacje między grupami są bardzo słabe;”

d)  sposoby, w jakie części komunikują się ze sobą, są ściśle regulowane”.

„A oto inny sposób na zobrazowanie tego:

MVC-1

"Model jest najbardziej niezależną częścią systemu . Nie zależy od widoku ani kontrolera. Model nie może używać klas z widoku ani grup kontrolerów (!)."

„Podstawowym ograniczeniem widoku jest to, że nie można zmienić modelu . Klasy widoków mogą uzyskiwać dostęp do modelu w celu uzyskania danych lub subskrybowania zdarzeń, ale klasy widoków nie mogą zmieniać modelu”.

„Głównym ograniczeniem kontrolera jest to, że nie wyświetla danych . Kontroler przetwarza działania użytkownika i odpowiednio modyfikuje model”.

– Ale po co mi to potrzebne?

„To, że teraz tego nie używasz, nie oznacza, że ​​nie będziesz tego używać w najbliższej przyszłości. Studiujesz tutaj, aby dostać pracę. I nawet jeśli ta wiedza nie okaże się przydatna podczas studiuje, na pewno przyda się w pracy."

„W końcu prawdziwe projekty i wywiady wciąż na ciebie czekają…”

„Teraz rozmawiamy tutaj, ale być może za miesiąc będziesz już pracować”.

„Masz całkowitą rację, Bilaabo. Wysłucham cię uważnie”.

„Wzorzec MVC jest bardzo powszechny w architekturze aplikacji. Trzeba go znać, żeby nagle nie zacząć dodawać klas widoków do modelu, bo tak będzie nam wygodniej”.

„Najważniejszą rzeczą w każdym projekcie jest jego architektura.  Twoim zadaniem na tym etapie jest nie tyle stworzenie dobrej architektury, co nauczenie się rozumienia architektury kogoś innego. Nadal będziesz musiał dorosnąć przez kilka lat, zanim stworzysz własne. Ale musisz zrozumieć, co stworzyli inni ludzie. Od razu”.

„Kiedy aplikacja korzysta ze standardowej architektury, wszystko staje się o wiele bardziej przejrzyste. Znając architekturę, wiesz, gdzie się znajdują, jak wszystko oddziałuje, z grubsza jak działa program, gdzie dodać potrzebną klasę i gdzie szukać przyczyny błąd."

„Ale jeśli nie jesteś zaznajomiony ze standardowym podejściem do architektury, to nawet najlepsza architektura nic ci nie powie. Będziesz jak wieśniak ze średniowiecza patrzący na nowy samochód. Standardowy samochód”.

„Rozumiem. Dzięki za interesującą lekcję, Bilaabo”.

„Na koniec, oto dobry link, który zdecydowanie powinieneś sprawdzić:”

Link do dodatkowych materiałów