logo

Architektura MVC w Javie

Kontroler widoku modelu (MVC) jest dobrze znanym rozwiązaniem wzór projektowy w dziedzinie tworzenia stron internetowych. Jest to sposób na uporządkowanie naszego kodu. Określa, że ​​program lub aplikacja będzie składać się z modelu danych, informacji prezentacyjnych i informacji sterujących. Wzorzec MVC wymaga oddzielenia wszystkich tych komponentów jako różnych obiektów.

W tej sekcji omówimy architekturę MVC w Javie, wraz z jej zaletami i wadami oraz przykładami pozwalającymi zrozumieć implementację MVC w Javie.

Jaka jest architektura MVC w Javie?

Projekty modeli oparte na architekturze MVC są zgodne ze wzorcem projektowym MVC. Logika aplikacji jest oddzielona od interfejsu użytkownika podczas projektowania oprogramowania z wykorzystaniem projektów modelowych.

Architektura wzorców MVC składa się z trzech warstw:

zamień na ciąg
    Model:Reprezentuje warstwę biznesową aplikacji. Jest to obiekt do przenoszenia danych, który może również zawierać logikę aktualizacji kontrolera w przypadku zmiany danych.Pogląd:Reprezentuje warstwę prezentacyjną aplikacji. Służy do wizualizacji danych zawartych w modelu.Kontroler:Działa zarówno na modelu, jak i na widoku. Służy do zarządzania przepływem aplikacji, czyli przepływem danych w obiekcie modelu oraz do aktualizacji widoku w przypadku każdej zmiany danych.

W programowaniu w języku Java model zawiera proste Klasy Javy , Widok używany do wyświetlania danych, a Kontroler zawiera serwlety . Ze względu na tę separację żądania użytkowników są przetwarzane w następujący sposób:

Architektura MVC w Javie
  1. Klient (przeglądarka) wysyła do kontrolera po stronie serwera żądanie wyświetlenia strony.
  2. Następnie kontroler wywołuje model. Gromadzi żądane dane.
  3. Następnie kontroler przesyła pobrane dane do warstwy widoku.
  4. Teraz wynik jest wysyłany z powrotem do przeglądarki (klienta) przez widok.

Zalety architektury MVC

Zalety architektury MVC są następujące:

dlaczego ciąg niezmienny w Javie
  • MVC ma funkcję skalowalności, która z kolei pomaga w rozwoju aplikacji.
  • Komponenty są łatwe w utrzymaniu, ponieważ istnieje mniejsza zależność.
  • Model może być ponownie wykorzystany w wielu widokach, co zapewnia możliwość ponownego wykorzystania kodu.
  • Programiści mogą pracować jednocześnie z trzema warstwami (Modelem, Widokiem i Kontrolerem).
  • Dzięki MVC aplikacja staje się bardziej zrozumiała.
  • Używając MVC, każda warstwa jest utrzymywana osobno, dzięki czemu nie musimy zajmować się ogromnym kodem.
  • Rozszerzanie i testowanie aplikacji jest łatwiejsze.

Implementacja MVC przy użyciu języka Java

Aby zaimplementować wzorzec MVC w Javie, musimy utworzyć następujące trzy klasy.

    Klasa pracownika, będzie działać jako warstwa modeluKlasa EmployeeView, będzie działać jako warstwa widokuKlasa EmployeeController, będzie działać jako warstwa kontrolera

Warstwy architektury MVC

Warstwa modelu

Model we wzorcu projektowym MVC działa jako warstwa danych dla aplikacji. Reprezentuje logikę biznesową aplikacji, a także stan aplikacji. Obiekt modelu pobiera i przechowuje stan modelu w bazie danych. Za pomocą warstwy modelu reguły są stosowane do danych reprezentujących koncepcje aplikacji.

Rozważmy następujący fragment kodu, który tworzy element będący jednocześnie pierwszym krokiem do wdrożenia wzorca MVC.

Pracownik.java

 // class that represents model public class Employee { // declaring the variables private String EmployeeName; private String EmployeeId; private String EmployeeDepartment; // defining getter and setter methods public String getId() { return EmployeeId; } public void setId(String id) { this.EmployeeId = id; } public String getName() { return EmployeeName; } public void setName(String name) { this.EmployeeName = name; } public String getDepartment() { return EmployeeDepartment; } public void setDepartment(String Department) { this.EmployeeDepartment = Department; } } 

Powyższy kod składa się po prostu z metod pobierających i ustawiających klasę Pracownik.

Wyświetl warstwę

Jak sama nazwa wskazuje, widok reprezentuje wizualizację danych otrzymanych z modelu. Warstwa widoku składa się z danych wyjściowych aplikacji lub interfejsu użytkownika. Wysyła do klienta żądane dane, które są pobierane z warstwy modelu przez kontroler.

Weźmy przykład, w którym tworzymy widok za pomocą klasy EmployeeView.

EmployeeView.java

k najbliższy sąsiad
 // class which represents the view public class EmployeeView { // method to display the Employee details public void printEmployeeDetails (String EmployeeName, String EmployeeId, String EmployeeDepartment){ System.out.println('Employee Details: '); System.out.println('Name: ' + EmployeeName); System.out.println('Employee ID: ' + EmployeeId); System.out.println('Employee Department: ' + EmployeeDepartment); } } 

Warstwa kontrolera

Warstwa kontrolera pobiera żądania użytkowników z warstwy widoku i przetwarza je, poddając niezbędne walidacje. Działa jako interfejs pomiędzy modelem i widokiem. Żądania są następnie wysyłane do modelu w celu przetworzenia danych. Po przetworzeniu dane są przesyłane z powrotem do kontrolera, a następnie wyświetlane na widoku.

Rozważmy następujący fragment kodu, który tworzy kontroler przy użyciu klasy EmployeeController.

plik csv odczytuje Java

Kontroler pracownika.java

 // class which represent the controller public class EmployeeController { // declaring the variables model and view private Employee model; private EmployeeView view; // constructor to initialize public EmployeeController(Employee model, EmployeeView view) { this.model = model; this.view = view; } // getter and setter methods public void setEmployeeName(String name){ model.setName(name); } public String getEmployeeName(){ return model.getName(); } public void setEmployeeId(String id){ model.setId(id); } public String getEmployeeId(){ return model.getId(); } public void setEmployeeDepartment(String Department){ model.setDepartment(Department); } public String getEmployeeDepartment(){ return model.getDepartment(); } // method to update view public void updateView() { view.printEmployeeDetails(model.getName(), model.getId(), model.getDepartment()); } } 

Główny plik Java klasy

Poniższy przykład wyświetla główny plik służący do implementacji architektury MVC. Tutaj używamy klasy MVCMain.

MVCMain.java

 // main class public class MVCMain { public static void main(String[] args) { // fetching the employee record based on the employee_id from the database Employee model = retriveEmployeeFromDatabase(); // creating a view to write Employee details on console EmployeeView view = new EmployeeView(); EmployeeController controller = new EmployeeController(model, view); controller.updateView(); //updating the model data controller.setEmployeeName('Nirnay'); System.out.println('
 Employee Details after updating: '); controller.updateView(); } private static Employee retriveEmployeeFromDatabase(){ Employee Employee = new Employee(); Employee.setName('Anu'); Employee.setId('11'); Employee.setDepartment('Salesforce'); return Employee; } } 

The MVCMain class pobiera dane pracownika z metody, w której wprowadziliśmy wartości. Następnie wypycha te wartości do modelu. Następnie inicjuje widok (EmployeeView.java). Po zainicjowaniu widoku wywoływany jest kontroler (EmployeeController.java), który wiąże go z klasą Employee i klasą EmployeeView. Wreszcie metoda updateView() (metoda kontrolera) aktualizuje dane pracownika, które mają zostać wydrukowane na konsoli.

Wyjście:

 Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce 

W ten sposób poznaliśmy architekturę MVC, znaczenie poszczególnych warstw oraz jej implementację w Javie.