- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模块2 MVC设计模式;模块2MVC设计模式;模块2MVC设计模式;2.1创 建 新 类;2.1创 建 新 类;2.1创 建 新 类;2.1创 建 新 类;2.1创 建 新 类;2.1创 建 新 类;2.1创 建 新 类;2.1创 建 新 类;2.1创 建 新 类; 在图2-4中,应用的对象按模型、控制器和视图的类别被分为三部分。Android应用是基于模型控制器视图(ModelViewController,MVC)的架构模式进行设计的。MVC设计模式表明,应用的任何对象归根结底都属于模型对象、视图对象以及控制对象中的一种。
(1)模型对象存储着应用的数据和业务逻辑。模型类通常被设计用来映射与应用相关的一些事物,如用户、商店里的商品、服务器上的图片或者一段电视节目。又或是GeoQuiz应用里的地理知识问题。模型对象不关心用户界面,它存在的唯一目的就是存储和管理应用数据。 Android应用里的模型类通常就是我们创建的定制类。应用的全部模型对象组成了模型层。 GeoQuiz的模型层由TrueFalse类组成。; (2)视图对象知道如何在屏幕上绘制自己及如何响应用户的输入,如用户的触摸等。一个简单的经验法则是,凡是能够在屏幕上看见的对象,就是视图对象。 Android默认自带了很多可配置的视图类。当然,也可以定制开发自己的视图类。应用的全部视图对象组成了视图层。 GeoQuiz应用的视图层是由activity_quiz.xml文件中定义的各类组件构成的。
(3)控制对象包含了应用的逻辑单元,是视图与模型对象联系的纽带。控制对象被设计用来响应由视图对象触发的各类事件,此外还用来管理模型对象与视图层间的数据流动。 在Android的世界里,控制器通常是Activity、Fragment或Service的一个子类。 当前,GeoQuiz的控制层仅由QuizActivity类组成。; 图2-5展示了在响应用户单击按钮等事件时,对象间的交互控制数据流。注意,模型对象与视图对象不直接交互。控制器作为它们间的联系纽带,接收来自对象的消息,然后向其他对象发送操作指令。; 使用MVC设计模式的好处如下。
随着应用功能的持续扩展,应用往往会变得过于复杂而让人难以理解。以Java类的方式组织代码有助于我们从整体视角设计和理解应用。这样,我们就可以按类而不是按一个个变量和方法去思考设计开发问题。
同样,把Java类以模型、视图和控制层进行分类组织,也有助于我们设计和理解应用。这样,我们就可以按层而非一个个类来考虑设计开发了。
尽管GeoQuiz不是一个复杂的应用,但以MVC分层模式设计它的好处还是显而易见的。接下来,我们来升级GeoQuiz应用的视图层,并为它添加一个Next按钮。我们会发现,在添加Next按钮的过程中,可完全不用考虑刚才创建的TrueFalse类的存在。; 使用MVC模式还可以让类的复用更加容易。相比功能多而全的类,有特别功能限定的专用类更加有利于代码的复用。举例来说,模型类TrueFalse与用作显示问题的组件毫无代码逻辑关联。这样,就很容易在应用里按需自由使用TrueFalse类。假设现在想显示所有地理知识问题列表,很简单,直接复用 TrueFalse对象逐条显示就可以了。; 了解了MVC设计模式后,现在我们来更新GeoQuiz应用的视图层,为其添加一个Next按钮。 在Android编程中,视图层对象通常生成自XML布局文件。GeoQuiz应用唯一的布局定义在 activity_quiz.xml文件中。布局定义文件需要更新的地方如图2-6所示。无须变化的组件属性这里就不再赘述了。; 应用视图层所需的变动操作如下。
(1)删除TextView的android:text属性定义。这里不再需要硬编码。
(2)为TextView新增android:id属性。TextView组件需要一个资源ID,以便在QuizActivity代码中为它设置要显示的文字。
(3)以根LinearLayout为父组件,新增一个Button组件。回到activity_quiz.xml文件中,参照代码清单23完成XML文件的相应修改。
代码清单2-3
新增按钮及文本视图的调整(activity_quiz.xml)
LinearLayout
...
TextView
android:id=@+id/question_text_view
;android:layout_width=”wrap_content
android:layout_height=wrap
您可能关注的文档
- 可再生能源发电技术4-太阳能发电.ppt
- 可再生能源发电技术5-生物质能及其利用.ppt
- 可再生能源发电技术1-综述.ppt
- 《客房服务与管理》项目六:客房部用品与设备管理 .pptx
- Android开发基础课件(第7章).pptx
- Android开发基础课件(第8章) .pptx
- Android开发基础课件(第9章).pptx
- Android开发基础课件(第10章).pptx
- Android开发基础课件(第11章) .pptx
- Android开发基础课件(第12章).pptx
- 山东聊城市文轩中学2026届数学八年级第一学期期末统考试题含解析.doc
- 安徽省芜湖市繁昌县2026届八年级数学第一学期期末预测试题含解析.doc
- 辽宁省锦州市凌海市2026届九年级数学第一学期期末调研模拟试题含解析.doc
- 江苏省泰州市姜堰区2026届八年级数学第一学期期末考试模拟试题含解析.doc
- 2026届广西桂林市灌阳县数学九上期末经典试题含解析.doc
- 安徽省马鞍山市2026届数学八上期末达标检测模拟试题含解析.doc
- 山南市重点中学2026届数学八年级第一学期期末学业水平测试模拟试题含解析.doc
- 种子预约生产合同协议书(精选).doc
- 石材买卖(合同)与石材买卖(合同)范本.doc
- 六、劳动合同书(16页版本).doc
最近下载
- 人教五年级数学上册全册重点内容讲解课件(总复习专用).ppt VIP
- TCHIA 54.3-2025颈椎病临床研究基本数据集 第3部分:评估记录.pdf VIP
- 2024年《生物安全培训》ppt课件(2024).pptx VIP
- 河南省普通高等学校对口招收中等职业学校毕业生考试财政与金融基础知识.pdf VIP
- 子宫内膜异位症诊治指南教材.ppt VIP
- 2008年河南省普通高等学校对口招收中等职业学校毕业生考试财政与金融基础知识答案.doc VIP
- NBT47017-2011压力容器视镜.docx VIP
- 东方神女山鬼系列全集.ppt VIP
- 肿瘤热疗中国专家共识.pptx
- 重点实验室PI年度工作汇报PPT.pptx VIP
原创力文档


文档评论(0)