Design Patterns MVC Pattern in Java


MVC mode

The MVC pattern represents the Model-View-Controller mode. This mode is used for layered development of applications.

  • Model - The model represents an object that accesses data or a JAVA POJO. It can also be logical to update the controller as the data changes.
  • View - The view represents the visualization of the data contained in the model.
  • Controller - The controller acts on the model and view. It controls the flow of data to the model object and updates the view as the data changes. It separates the view from the model
MVC mode

Implementation

We will create an Student object as a model. StudentView is a view class that outputs student details to the console. StudentController is the controller class responsible for storing data into the Student object. And update the view StudentView accordingly.

MVCPatternDemo, our demo class uses StudentController to demonstrate the use of MVC patterns.

MVCPattern diagram

Step 1

Create a model.

Student.java

public class Student { private String rollNo; private String name; public String getRollNo() { return rollNo; } public void setRollNo(String rollNo) { this.rollNo = rollNo; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

Step 2

Create a view.

StudentView.java

public class StudentView { public void printStudentDetails(String studentName, String studentRollNo){ System.out.println("Student: "); System.out.println("Name: " + studentName); System.out.println("Roll No: " + studentRollNo); } }

Step 3

Create a controller.

StudentController.java

public class StudentController { private Student model; private StudentView view; public StudentController(Student model, StudentView view){ this.model = model; this.view = view; } public void setStudentName(String name){ model.setName(name); } public String getStudentName(){ return model.getName(); } public void setStudentRollNo(String rollNo){ model.setRollNo(rollNo); } public String getStudentRollNo(){ return model.getRollNo(); } public void updateView(){ view.printStudentDetails(model.getName(), model.getRollNo()); } }

Step 4

Use the StudentController method to demonstrate the use of the MVC design pattern.

MVCPatternDemo.java

public class MVCPatternDemo { public static void main(String[] args) { //Get student records from the database Student model = retriveStudentFromDatabase(); //Create a view: Output student details to the console StudentView view = new StudentView(); StudentController controller = new StudentController(model, view); controller.updateView(); //Update model data controller.setStudentName("John"); controller.updateView(); } private static Student retriveStudentFromDatabase(){ Student student = new Student(); student.setName("Robert"); student.setRollNo("10"); return student; } }

Step 5

Executing the program, outputting results:

Student: 
Name: Robert
Roll No: 10
Student: 
Name: John
Roll No: 10





javacodegeeks is optimized for learning.© javacodegeeks .
All Right Reserved and you agree to have read and accepted our term and condition