Dzięki zastosowaniu wzorców projektowych programista nie musi „wymyślać koła na nowo”. Zamiast tego ma szansę zastosować sprawdzone przez lata, solidne i zatwierdzone przez najlepszych specjalistów rozwiązania. Zastosowanie wzorców projektowych pomaga więc oszczędzić czas i poprawić jakość tworzonych aplikacji.
Jednym z najpowszechniej używanych wzorców projektowych jest MVC (ang. Model – View - Controller). Bardzo często jest on wykorzystywany przy tworzeniu aplikacji sieciowych.
Podział kodu
Dzięki wzorcowi MVC twórca aplikacji dzieli kod na trzy odrębne części:
- Model
- Widok (ang. View)
- Sterownik (często nazywany po polsku Kontrolerem, ang. Controller)
Dzięki temu podziałowi wzrasta jakość tworzonego kodu źródłowego. Zastosowanie takiego podziału pomaga uniknąć tworzenia niskiej jakości, zagmatwanego kodu (często nazywanego po angielsku „spaghetti code”), gdyż fragmenty aplikacji odpowiedzialne za różne funkcjonalności są od siebie oddzielone i nie mieszają się ze sobą.
Na model składają się: programistyczna reprezentacja problemu (np. dla aplikacji przeznaczonej dla księgarni mogłaby to być książka, która ma swojego autora, datę wydania, cenę itd.) i logika biznesowa aplikacji.
Przeznaczeniem widoku jest prezentacja danych użytkownikowi końcowemu na podstawie modelu (np. wyświetlenie użytkownikowi w czytelny sposób autora, datę wydania książki i cenę). Widok jest odpowiedzialny także za pobranie danych, które wprowadza użytkownik (np. do formularza zamówienia książki) i przekazanie je dalej, czyli do warstwy kontrolera.
Sterownik (Kontroler) odbiera informacje od użytkownika i przekierowuje jego żądania do odpowiednich miejsc.
Wybrane zalety MVC
- Kod źródłowy napisany przy użyciu wzorca MVC jest bardziej czytelny i lepszej jakości. Dzięki temu może być w przyszłości łatwiej przejęty przez innych programistów, a także łatwiej go później poprawiać i ulepszać.
- Łatwiej jest zmienić interfejs graficzny, który widzi użytkownik (ang. GUI – Graphical User Interface). Logika biznesowa może pozostać niezmieniona, gdy zmienia się wygląd interfejsuużytkownika, te dwa fragmenty kodu są od siebie oddzielone.
- Można do tej samej logiki biznesowej podpiąć jednocześnie różne widoki. Oznacza to, że ta sama logika biznesowa może np. obsługiwać jednocześnie aplikację sieciową przeznaczoną na przeglądarki internetowe i aplikację mobilną. Nie ma potrzeby pisania od nowa, a często nawet wprowadzania poprawek do logiki biznesowej, jeżeli w pewnym momencie stwierdzimy, że oprócz aplikacji sieciowej na przeglądarki potrzebujemy także aplikację mobilną.
Brak stosowania MVC
Jeżeli nie stosuje się MVC, należy liczyć się z pewnymi nieprzyjemnymi konsekwencjami:
- Kod może okazać się zagmatwany i trudny do zrozumienia. Wydłuży to czas wdrożenia do projektu nowego programisty.
- O wiele trudniej będzie wprowadzić nowe zmiany i poprawki.
- Jeżeli w pewnym momencie zdecydujemy, że oprócz naszej aplikacji internetowej na przeglądarki potrzebujemy także aplikacji mobilnej, być może trzeba będzie pisać logikę biznesową od nowa lub wprowadzać w niej bardzo duże zmiany, co z kolei może zaszkodzić już istniejącej aplikacji przeznaczonej na przeglądarki.