El Model-View-Controller (MVC) es un conocido patrón de diseño en el campo del desarrollo web. Es una forma de organizar nuestro código. Especifica que un programa o aplicación constará de un modelo de datos, información de presentación e información de control. El patrón MVC necesita que todos estos componentes estén separados como objetos diferentes.
En esta sección, discutiremos la arquitectura MVC en Java, junto con sus ventajas y desventajas y ejemplos para comprender la implementación de MVC en Java.
¿Qué es la arquitectura MVC en Java?
Los diseños de modelos basados en la arquitectura MVC siguen el patrón de diseño MVC. La lógica de la aplicación está separada de la interfaz de usuario mientras se diseña el software utilizando diseños de modelos.
La arquitectura del patrón MVC consta de tres capas:
En programación Java, el modelo contiene lo simple clases de java , la Vista utilizada para mostrar los datos y el Controlador contiene la servlets . Debido a esta separación las solicitudes de los usuarios se procesan de la siguiente manera:
- Un cliente (navegador) envía una solicitud al controlador del lado del servidor para obtener una página.
- Luego, el controlador llama al modelo. Recoge los datos solicitados.
- Luego, el controlador transfiere los datos recuperados a la capa de vista.
- Ahora la vista envía el resultado al navegador (cliente).
Ventajas de la arquitectura MVC
Las ventajas de la arquitectura MVC son las siguientes:
- MVC tiene la característica de escalabilidad que a su vez ayuda al crecimiento de la aplicación.
- Los componentes son fáciles de mantener porque hay menos dependencia.
- Un modelo puede ser reutilizado por múltiples vistas, lo que proporciona reutilización del código.
- Los desarrolladores pueden trabajar con las tres capas (Modelo, Vista y Controlador) simultáneamente.
- Al utilizar MVC, la aplicación se vuelve más comprensible.
- Al utilizar MVC, cada capa se mantiene por separado, por lo que no es necesario trabajar con código masivo.
- La ampliación y prueba de la aplicación es más sencilla.
Implementación de MVC usando Java
Para implementar el patrón MVC en Java, debemos crear las siguientes tres clases.
convertir int a cadena java
Capas de arquitectura MVC
Capa de modelo
El modelo en el patrón de diseño MVC actúa como una capa de datos para la aplicación. Representa la lógica empresarial de la aplicación y también el estado de la aplicación. El objeto del modelo busca y almacena el estado del modelo en la base de datos. Utilizando la capa de modelo, se aplican reglas a los datos que representan los conceptos de aplicación.
Consideremos el siguiente fragmento de código que crea un patrón que también es el primer paso para implementar el patrón MVC.
Employee.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; } }
El código anterior simplemente consta de métodos getter y setter para la clase Empleado.
Ver capa
Como su nombre lo indica, la vista representa la visualización de los datos recibidos del modelo. La capa de vista consta de la salida de la aplicación o la interfaz de usuario. Envía los datos solicitados al cliente, que el controlador los recupera de la capa del modelo.
Tomemos un ejemplo en el que creamos una vista usando la clase EmployeeView.
alinear imágenes en css
EmployeeView.java
// 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); } }
Capa controladora
La capa de controlador recibe las solicitudes de los usuarios de la capa de vista y las procesa, con las validaciones necesarias. Actúa como una interfaz entre el Modelo y la Vista. Luego, las solicitudes se envían al modelo para el procesamiento de datos. Una vez procesados, los datos se envían de vuelta al controlador y luego se muestran en la vista.
Consideremos el siguiente fragmento de código que crea el controlador utilizando la clase EmployeeController.
EmployeeController.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()); } }
Archivo Java de clase principal
El siguiente ejemplo muestra el archivo principal para implementar la arquitectura MVC. Aquí, estamos usando la clase MVCMain.
declaración de cambio java
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; } }
El MVCPrincipal La clase recupera los datos del empleado del método donde ingresamos los valores. Luego empuja esos valores en el modelo. Después de eso, inicializa la vista (EmployeeView.java). Cuando se inicializa la vista, se invoca el Controlador (EmployeeController.java) y lo vincula a la clase Empleado y a la clase EmployeeView. Por fin, el método updateView() (método del controlador) actualiza los detalles del empleado que se imprimirán en la consola.
Producción:
Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce
De esta forma hemos aprendido sobre la Arquitectura MVC, el significado de cada capa y su implementación en Java.