>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 26644 个阅读者 刷新本主题
 * 贴子主题:  Java设计模式:MVC 模式 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-10 16:04:52     消息  查看  搜索  好友  邮件  复制  引用

  

MVC 模式

    MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。    
  • Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
  • View(视图) - 视图代表模型包含的数据的可视化。
  • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
     点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小    

实现

     我们将创建一个作为模型的 Student 对象。StudentView 是一个把学生详细信息输出到控制台的视图类,StudentController 是负责存储数据到 Student 对象中的控制器类,并相应地更新视图 StudentView。

     MVCPatternDemo,我们的演示类使用 StudentController 来演示 MVC 模式的用法。

    点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

步骤 1

     创建模型。                      

Student.java

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

步骤 2

     创建视图。                      

StudentView.java

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

步骤 3

     创建控制器。                      

StudentController.java

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

步骤 4

     使用 StudentController 方法来演示 MVC 设计模式的用法。                      

MVCPatternDemo.java

public   class   MVCPatternDemo   {
    public   static   void   main ( String [ ]   args )   {

       // 从数据库获取学生记录  
       Student   model   =  retrieveStudentFromDatabase ( ) ;

       // 创建一个视图:把学生详细信息输出到控制台  
       StudentView   view  =  new   StudentView ( ) ;

       StudentController   controller  =  new   StudentController ( model ,  view ) ;

       controller . updateView ( ) ;

       // 更新模型数据  
       controller . setStudentName ( " John " ) ;

       controller . updateView ( ) ;
    }

    private   static   Student   retrieveStudentFromDatabase ( ) {
       Student   student  =  new   Student ( ) ;
       student . setName ( " Robert " ) ;
       student . setRollNo ( " 10 " ) ;
       return   student ;
    }
}

步骤 5

     执行程序,输出结果:

Student:

Name: Robert

Roll No: 10

Student:

Name: John

Roll No: 10



程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-21 11:59:53 重新编辑]
  Java面向对象编程-->Java常用类(上)
  JavaWeb开发-->Web运作原理(Ⅱ)
  JSP与Hibernate开发-->立即检索和延迟检索策略
  Java网络编程-->基于UDP的数据报和套接字
  精通Spring-->
  Vue3开发-->绑定表单
  BIO模型的缺陷
  Java关键字final、static使用总结
  Java泛型中的通配符 T,E,K,V,? 你了解吗
  BST 二叉搜索树
  内部类的编程练习题
  Java并发编程之验证volatile不能保证原子性
  分布式锁的原理和实现
  正则表达式范例
  Java设计模式:观察者模式
  java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍
  Java入门实用代码: List 列表中元素的替换
  判断一个字符是否是汉字
  正则表达式【匹配非字母和数字】
  Java程序代码优化技巧
  Java Pattern和Matcher字符匹配详解
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。