JSP学习日志二,MVC三级结构

发布时间 2023-05-28 23:55:48作者: YE-

Java MVC(Model-View-Controller)是一种应用程序开发的设计模式。它将应用程序拆分成三个主要组成部分:

Model:表示应用程序中的数据或业务逻辑。Model 包括数据,以及它与数据相关的方法和函数。Model 维护和管理应用程序的数据、状态和规则,这些数据和规则由逻辑和动作组成。
View:表示应用程序中所需要的用户界面。View 将数据从 Model 中获取,并以用户友好的方式呈现给用户。View 是应用程序的直接界面,它负责处理用户请求、响应和显示相应的数据响应。
Controller:表示应用程序中的控制器。Controller 接收用户输入并调用 Model 中的方法和函数进行处理。Controller 通过对 Model 进行设置,从而控制应用程序的行为。Controller 响应用户的输入并更新 Model 和 View 的状态。

MVC 的三个部分如下所示:

Model

模型被设计为独立的组件,包含与业务逻辑相关的数据和操作。
模型可以是任何表示数据的对象或一组类。这些类包括处理数据的方法和数据结构。
通常模型是最小化或不包含 UI 的部分。

View

视图是与用户看到的界面相关的组件。
视图显示模型的数据块和操作。
视图可以是在图形用户界面 (GUI) 中使用的窗口或屏幕上的区域。
通常将视图定义为依赖于模型的被动组件。

Controller

控制器是视图和模型之间的中间件。
控制器处理用户的输入事件,并在模型中传递这些事件。
控制器负责更新模型和视图。
控制器可以是应用程序的单个类或一组类。

三级结构指的是 MVC 设计模式被分成了三层进行设计和实现。通常,这些层是:

Presentation Layer(视图层)- UI 界面,视图组件呈现模型的数据和操作。
Business Layer(业务逻辑层)- 应用程序的内部工作。该层关注于数据转换、流程和问题解决。
Data Layer (模型层)- 应用程序的主数据存储区域。该层包括所有读写操作,如数据库读写操作。

这个三级结构方式有利于开发人员将代码模块化并实现高度重用性。例如,视图和模型可以进行相对独立的开发,然后能够使用控制器进行连接,从而实现解耦以及更快的开发和测试。

以下是使用Java MVC设计模式的示例代码:

Model 示例

public class Student {
    private String name;
    private int age;
    private String major;

    // getters and setters

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getMajor() {
        return major;
    }
}

View 示例

public class StudentView {
    public void displayStudentDetails(String name, int age, String major) {
        System.out.println("Student Info:");
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Major: " + major);
    }
}

Controller 示例

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 setStudentAge(int age) {
        model.setAge(age);
    }

    public int getStudentAge() {
        return model.getAge();
    }

    public void setStudentMajor(String major) {
        model.setMajor(major);
    }

    public String getStudentMajor() {
        return model.getMajor();
    }

    public void updateView() {
        view.displayStudentDetails(model.getName(), model.getAge(), model.getMajor());
    }
}

这些代码展示了一个简单的学生信息管理系统,其中 Model 表示学生的信息,View 显示学生信息,Controller 用于管理 Model 和 View 之间的通信。例如,我们可以使用控制器实现添加或更新学生信息并显示在视图层。此外,这些代码可以用于更复杂的应用程序,例如 web 应用程序,其中 Model 表示数据库中的数据,View 包括用户交互界面,Controller 处理用户请求并更新模型和视图。