MVC模式

作者: Stroman | 来源:发表于2019-10-11 18:21 被阅读0次

    总述

    MVC在GUI开发中是十分常见的设计模式,也是基本框架。M代表数据模型,V代表视图,它是数据模型的可视化展示,C代表控制器,其中控制器控制着视图和数据模型。这里面控制器就内置了数据模型和视图。我认为控制器里面只不过一些方法,数据的存储都在数据模型里面,换句话说,这个控制器就是个指挥官的角色,就感觉像个交警在那里指挥数据模型和视图在那里交互一样。在iOS中数据模型和视图之间是没有直接交互的,而是通过控制器进行的,这个我感觉很合理。

    类图

    类图.png

    效果

    这是controller自带的model
    这是一个model
    这是另一个model
    
    Process finished with exit code 0
    

    调用

    package com.company;
    
    public class Main {
    
        public static void main(String[] args) {
        // write your code here
            Controller controller = new Controller();
            controller.getView().updateData(controller.getModel());
            Model model = new Model();
            model.setInformation("这是一个model");
            controller.setModel(model);
            controller.getView().updateData(controller.getModel());
            Model anotherModel = new Model();
            model.setInformation("这是另一个model");
            controller.getView().updateData(controller.getModel());
        }
    }
    
    

    控制器

    package com.company;
    
    public class Controller {
        private Model model;
        private View view;
    
        public Controller() {
            this.model = new Model();
            this.model.setInformation("这是controller自带的model");
            this.view = new View();
        }
    
        public Model getModel() {
            return model;
        }
    
        public void setModel(Model model) {
            this.model = model;
        }
    
        public View getView() {
            return view;
        }
    
        public void setView(View view) {
            this.view = view;
        }
    }
    
    

    数据模型

    package com.company;
    
    public class Model {
        private String information;
    
        public String getInformation() {
            return information;
        }
    
        public void setInformation(String information) {
            this.information = information;
        }
    }
    
    

    视图

    package com.company;
    
    public class View {
        public void updateData(Model model) {
            System.out.println(model.getInformation());
        }
    }
    
    

    多谢捧场

    如果您觉得我的文章有价值,那么赏脸打赏一个,鄙人感激不尽。不过,不打赏看看也是好的,如果有不对的地方,还请您多多指正。


    相关文章

      网友评论

        本文标题:MVC模式

        本文链接:https://www.haomeiwen.com/subject/obexmctx.html