zoukankan      html  css  js  c++  java
  • MVC模式

    描述

    MVC模式,熟悉java的web开源框架springMVC的人对这个模式肯定不陌生,顾名思义,M:model(模型),V:view(视图),C:controller(控制器),这是一种按照逻辑对程序进行分层的思想。把对model的定义、操作和展示完美的分开,这样能清晰的分离开不同的业务逻辑层次。

    实例

    假设我们有一个学生(student)类,现在要对学生类进行改写和展示,那么我们就可以用MVC模式实现这个需求

    //M-model
    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;
       }
    }
    
    //V-view
    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);
       }
    }
    
    //C-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 setStudentRollNo(String rollNo){
          model.setRollNo(rollNo);        
       }
    
       public String getStudentRollNo(){
          return model.getRollNo();        
       }
    
       public void updateView(){                
          view.printStudentDetails(model.getName(), model.getRollNo());
       }    
    }
    
    public class MVCPatternDemo {
       public static void main(String[] args) {
    
          //从数据可获取学生记录
          Student model  = retriveStudentFromDatabase();
    
          //创建一个视图:把学生详细信息输出到控制台
          StudentView view = new StudentView();
    
          StudentController controller = new StudentController(model, view);
    
          controller.updateView();
    
          //更新模型数据
          controller.setStudentName("John");
    
          controller.updateView();
       }
    
       private static Student retriveStudentFromDatabase(){
          Student student = new Student();
          student.setName("Robert");
          student.setRollNo("10");
          return student;
       }
    }
    
    //输出结果:
    Student: 
    Name: Robert
    Roll No: 10
    Student: 
    Name: John
    Roll No: 10
    

      

    代码来源: 特别感谢 菜鸟教程java设计模式之MVC模式

  • 相关阅读:
    Quick QEMU
    Linux 常用命令速查
    Linux 安装篇
    Vivaldi解决flash插件问题
    VNC 安装 (适用Redhat 9.0 和 CentOS 7.0+)
    Git使用笔记 (github为例)
    poj3045 Cow Acrobats(二分最大化最小值)
    poj3104 Drying(二分最大化最小值 好题)
    poj3468 A Simple Problem with Integers(线段树区间更新)
    poj1852 Ants(思维)
  • 原文地址:https://www.cnblogs.com/K-artorias/p/7985815.html
Copyright © 2011-2022 走看看