fbpx
Architektura trójwarstwowa

Architektura trójwarstwowa

Architektura trójwarstwowa dzieli program na trzy osobne części, mianowicie:

  • warstwa prezentacji
  • warstwa biznesowa (zwana również warstwą logiki biznesowej)
  • warstwa danych (persystencji, utrwalania danych).

W praktyce warstwa prezentacji to po prostu interfejs użytkownika. Może to być standardowy interfejs graficzny, może to być strona internetowa, czy też prosty interfejs tekstowy.

Centralne miejsce zajmuję warstwa biznesowa. Tu znajdują się nasze serwisy, cała magia, którą wykonuje nasz program.

Finalnie mamy warstwę danych. Tutaj znajdują się tak zwane repozytoria, które to odpowiadają za zapisywanie danych. Może to być zapis do bazy, czy też do pliku. Warstwa ta odpowiedzialna jest też za wykonywanie operacji z rodziny CRUD (create, read, update, delete).

Podstawowa architektura trojwarstwowa

Co daje nam takie rozwiązanie? Przede wszystkim pozwala na jasne odseparowanie obowiązków poszczególnych warstw. Logika biznesowa (np. wyliczanie wartości zakupionych rzeczy przy uwzględnieniu rabatu) nie powinna być „wyliczana” na warstwie prezentacji, tylko w stosownych serwisach w warstwie biznesowej. Nie umieszczamy kodu, który to robi gdzieś pośród javascriptowych komponentów (jeśli naszym interfejsem jest strona www), tylko umieszczamy na serwerze, a strona pobiera tylko te dane i wyświetla.

Po drugie pozwala nam na obsługę wielu punktów dostępowych do naszego programu – ta sama logika biznesowa może obsługiwać zarówno interfejs graficzny jak i komunikacje REST. Choć wówczas będzie potrzeba dorobienia osobnych DTO (więcej o nich w tym poście).

Podstawowa architektura trojwarstwowa

Podobnie również po stronie zapisywania danych. Możemy mieć dwa różne repozytoria służące do zapisu do różnych baz danych, albo jedno do bazy danych, a drugi do pliku. Dzięki użyciu interfejsów te rozwiązania można w miarę bezproblemowo „podmieniać”.

Podstawowa architektura trojwarstwowa

Jak widać na obrazku architektura trójwarstwowa nieco nam się rozbudowała, stąd też pojęcie architektury wielowarstwowej.

Całą, dużą aplikację w tej architekturze tworzymy w moim kursie Kompletna aplikacja w języku Java

By być na bieżąco i mieć realny wpływ na tematykę tworzonych przeze mnie artykułów zapraszam do dołączenia do mojego newslettera.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *