MVC模式

基本介绍

1.Model - View - Controller(模型 - 视图 - 控制器)模式

2.应用场景:程序的分层开发

3.角色

(1)Model:模型,代表一个存取数据的对象或普通 JavaBeans,它也可以带有逻辑,在数据变化时更新 Controller

(2)View:视图,代表 Model 包含的数据的可视化。

(3)Controller:控制器,作用于 Model 和 View 上,控制数据流向 Model 对象,并在数据变化时更新 View,使 View 与 Model 分离开

 

代码示例

public class MVC {//客户端

    public static void main(String[] args) {
        Model model = retrieveModelFromDatabase();
        View view = new View();
        Controller controller = new Controller(model, view);
        controller.updateView();
        controller.setName("John");
        controller.setNo("20");
        controller.updateView();
    }

    private static Model retrieveModelFromDatabase() {
        Model model = new Model();
        model.setName("Robert");
        model.setNo("10");
        return model;
    }
}

class Model {//模型
    private String no;
    private String name;

    public String getNo() {
        return no;
    }

    public void setNo(String no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

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

class View {//视图

    public void printModelDetails(String name, String no) {
        System.out.println("Model");
        System.out.println("Name:" + name);
        System.out.println("No:" + no);
    }
}

class Controller {//控制器
    private Model model;
    private View view;

    public Controller(Model model, View view) {
        this.model = model;
        this.view = view;
    }

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

    public String getName() {
        return model.getName();
    }

    public void setNo(String no) {
        model.setNo(no);
    }

    public String getNo() {
        return model.getNo();
    }

    public void updateView() {
        view.printModelDetails(model.getName(), model.getNo());
    }
}

 

posted @   半条咸鱼  阅读(39)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示