




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java与MVC设计模式 洪彬 MVC模式介绍 模型 视图 控制器 Model View Controller MVC 模式是为那些需要为同样的数据提供多个视图的应用程序而设计的 它很好地实现了数据层与表示层的分离 特别适用于开发与用户图形界面有关的应用程序 模式中基本结构定义为 控制器用来处理用户命令以及程序事件的 模型维护数据并提供数据访问方法 视图数据的显示 MVC模式基本实现过程为 1 控制器新建模型 控制器要新建一个或多个视图对象 并将它们与模型相关联 3 控制器改变模型的状态 4 当模型的状态改变时 模型将会通知视图刷新相关的显示 基本MVC模式 Java通过专门的类Observable及Observer接口来实现MVC设计模式 MVC模式的时序图 一个例子 该程序主要由三个类构成 分别为Sphere类 TextView类及SphereWindow类 其中Sphere类扮演Model的角色 TextView类为View角色 SphereWindow类为Controller角色 Model类需继承Observable类 View类需实现接口Observer 当用户在图形化用户界面输入一个球体的半径时 程序将显示该球体的体积与表面积 一个例子 Model类Sphere 必须扩展Observable类 因为在Observable类中 方法addObserver 将视图与模型相关联 当模型状态改变时 Sphere通过方法notifyObservers 通知视图 View类的角色TextView类必须实现接口Observer 需实现其中的方法update 有了这个方法 当模型Sphere类的状态发生改变时 与模型相关联的视图中的update 方法就会自动被调用 从而实现视图的自动刷新 一个例子 SphereWindow类作为Controller 它主要新建Model与View 将View与Model相关联 并处理事件 UML图 importjava util Observable classSphereextendsObservable publicvoidsetRadius doubler myRadius r setChanged notifyObservers importjava util Observer importjava util Observable publicclassTextViewextendsJPanelimplementsObserver publicvoidupdate Observableo Objectarg Sphereballoon Sphere o radiusIn setText f3 format balloon getRadius volumeOut setText f3 format balloon volume surfAreaOut setText f3 format balloon surfaceArea importjavax swing JPanel importjavax swing JFrame importjava awt Container importjavax swing JTextField classSphereWindowextendsJFrame publicSphereWindow super Spheres volumeandsurfacearea model newSphere 0 0 100 TextViewview newTextView model addObserver view view update model null view addActionListener this Containerc getContentPane c add view publicvoidactionPerformed ActionEvente JTextFieldt JTextField e getSource doubler Double parseDouble t getText model setRadius r 再拓展一下 该程序是通过Java中的MVC模式编写的 具有极其良好的可扩展性 它可以轻松实现以下功能 1 实现一个模型的多个视图 2 采用多个控制器 3 当模型改变时 所有视图将自动刷新 4 所有的控制器将相互独立工作 这就是Java编程模式的好处 只需在以前的程序上稍作修改或增加新的类 即可轻松增加许多程序功能 以前开发的许多类可以重用 而程序结构根本不再需要改变 各类之间相互独立 便于团体开发 提高开发效率 一个模型 两个视图和一个控制器 下面我们讨论如何实现一个模型 两个视图和一个控制器的程序 当用户在图形化用户界面输入一个球体的半径 程序除显示该球体的体积与表面积外 还将图形化显示该球体 其中Model类及View1类根本不需要改变 与前面的完全一样 这就是面向对象编程的好处 对于Controller中的SphereWindows类 只需要增加另一个视图 并与Model发生关联即可 其关键实现代码为 publicSphereWindow super Spheres volumeandsurfacearea model newSphere 0 0 100 TextViewtView newTextView model addObserver tView tView addActionListener this tView update model null GraphicsViewgView newGraphicsView model addObserver gView gView update model null Containerc getContentPane c setLayout newGridLayout 1 2 c add tView c add gView MVC模式的Java组件 许多JavaSwing组件使用了MVC的设计模式如JButton JTextField JPasswordField等主要用于格式化用户的输入 防止非法输入 在密码域中用回显字符 echocharacter 代替输入的字符串也用到了这种模式 Java中的格式器 过滤器 检验器等都是MVC的应用 简单的应用 JavaSwing中有个JTable类 有三种工作模式 不可编辑 可编辑但不可改变模型的数据能够改变模型数据演示程序 关键代码 publicclassunEditableextendsAbstractTableModel publicunEditable publicintgetRowCount return5 publicObjectgetValueAt introwIndex intcolumnIndex returncell rowIndex 2 columnIndex publicStringgetColumnName intcolumn returncolumnNames column privateString cell newString Jim 123456 Bob 2123 King 5215 Rechard 54552 Garfield 52463 privateString columnNames newString Name Password 关键代码 unChangableModelpublicbooleanisCellEditable intr intc returnc 0 c 1 changableModelpublicvoidsetValueAt Objectvalue intr intc cell r 2 c String value MVC的优点 首先 最重要的是有多个视图对应一个模型的能力 在目前用户需求的快速变化下 可能有多种方式访问应用的要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 货物学的考试题及答案
- 动物助理面试题及答案
- 小熊搬家面试题及答案
- 安徽高职面试题及答案
- 公共卫生科年终工作总结
- 家电公司应急组织管理办法
- 2026届辽宁省重点六校协作体高一化学第一学期期中教学质量检测试题含解析
- 上海市东昌中学2026届化学高一第一学期期末学业质量监测试题含解析
- 2020-2025年投资项目管理师之宏观经济政策考前冲刺模拟试卷B卷含答案
- 采购苗案件处理方案(3篇)
- 八五普法考试试题及答案
- 商业秘密培训课件
- 中级消防员考试试题及答案
- 教学设计课件比赛封面设计
- 2025年评茶员职业技能鉴定题库(含答案)
- 数学集体备课汇报展示
- 2025年 江苏苏州昆山国创投资集团有限公司第一期招聘考试试卷附答案
- 《建筑基坑工程监测技术标准》(50497-2019)
- 诺如病毒感染暴发调查和预防控制技术指南(2023版)
- 班级管理(第3版)教学课件汇总全套电子教案(完整版)
- 行政处罚案卷制作规范课件
评论
0/150
提交评论