javaMvc模式

JAVA MVC模式

MVC模式定义:

MVC模式代表Model-View-Controller(模型-视图-控制器),该模式用于应用程序的分层开发。

  • Model(模型):模型代表一个存取数据的对象和Java POJO,它也可以带有逻辑,在数据变化时,更新控制器。
  • View(视图):视图代表模型包含的数据可视化。
  • Controller(控制器):控制器作用于模型和视图上,它控制数据流向模型对象。
    在这里插入图片描述

MVC的实现

在这里插入图片描述
构建代码如下:

Student类

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;
    }
}

StudentController类

public class StudentController {
    private Student model;
    private StudentView view;

    public void setStudent_na(String name){
        model.setName(name);
    }

    public void setStudent_rollno(String rollna){
        model.setRollNo(rollna);
    }


    public StudentController(Student model, StudentView view) {
        this.model = model;
        this.view = view;
    }

    public Student getModel() {
        return model;
    }

    public void setModel(Student model) {
        this.model = model;
    }

    public StudentView getView() {
        return view;
    }

    public void setView(StudentView view) {
        this.view = view;
    }

    public void updateView(){
        view.printStudentDetails(model.getName(),model.getRollNo());
    }
}

StudentDao类

public class studentDao {
    public List<Student> retrieveStudentFromDatabase(){
        JDBConnection jdbConnection=new JDBConnection();
        String sql="select * from studentdata";
        List<Student> studentList=new ArrayList<>();
        try {

            ResultSet resultSet = jdbConnection.executeQuery(sql);
            while(resultSet.next()){
                String na=resultSet.getString(1);
                String no=resultSet.getString(2);
                Student student=new Student();
                student.setName(na);
                student.setRollNo(no);
                studentList.add(student);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            jdbConnection.closeConnecstion();
        }
        return studentList;
    }
}

StudentView类

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

main函数操作类

public class MVCPatternDemo {
    public static void main(String[] args) {
        //从数据库获取学生记录
        studentDao studentDao=new studentDao();
        List<Student> model=studentDao.retrieveStudentFromDatabase();
        for(int i=0;i<model.size();i++){
            //创建视图
            StudentView view =new StudentView();
            StudentController controller=new StudentController(model.get(i),view);
            //输出当前视图
            controller.updateView();
            System.out.println("-----开始操作-----");
            //更新数据
            controller.setStudent_na("ouguangji");
            controller.setStudent_rollno(String.valueOf(i+1));
            System.out.println("----结束操作----");
            //输出更新后的视图
            controller.updateView();
        }

    }
}

MVC设计模式的优点

  1. 分工明确

    开发人员可以只关注整个结构中的其中某一层,使用MVC模式可以把数据库开发,程序业务逻辑开发,页面开发分开,每一层都具有相同的特征,方便开发后的维护工作。

  2. 低耦合:

    视图层和业务层分离,这样就允许更改视图代码,

  3. 复用性高:

    类似于多个视图能够共享一个模型,不论你视图层是用flash界面或是wap界面,用一个模型就能处理他们。将数据和业务规则从表示层分开,就可以最大化从用代码。

  4. 有利于标准化:

    有利于通过工程化、工具化产生管理程序代码。

发布了44 篇原创文章 · 获赞 26 · 访问量 4350
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章