当前位置: 首页 > news >正文 网站底部怎么做需要放些什么网站建设菜鸟教程 news 2025/10/26 5:57:01 网站底部怎么做需要放些什么,网站建设菜鸟教程,ps兼职做网站,慧聪网郭凡生现状【Android】浅析MVC与MVP 什么是架构#xff1f; 架构#xff08;Architecture#xff09;在软件开发中指的是软件系统的整体设计和结构#xff0c;它描述了系统的高层组织方式#xff0c;包括系统中各个组件之间的关系、依赖、交互方式#xff0c;以及这些组件如何协同…【Android】浅析MVC与MVP 什么是架构 架构Architecture在软件开发中指的是软件系统的整体设计和结构它描述了系统的高层组织方式包括系统中各个组件之间的关系、依赖、交互方式以及这些组件如何协同工作来完成系统的功能。 架构不仅仅是指代码的结构它还涵盖了系统的各个方面包括 组件的划分将系统拆分成模块、类、服务等单元。组件间的交互不同模块、组件如何传递信息、调用服务等。数据流数据如何在系统中流动从输入到输出的路径是什么。非功能性需求如何考虑系统的性能、可扩展性、安全性、可维护性等。 架构模式其实更多的是一种思想一种规则往往一种架构模式可能会有不同的实现方式而实现方式之间只有合适与否并没有对错之分。 为了解决特定的问题而提出按照特定的原则将系统整体进行模块组件角色的划分建立模块组件角色间的沟通机制 摘自https://zhuanlan.zhihu.com/p/83635530 MVC架构 在不同的框架或平台上MVCModel-View-Controller架构的具体实现方式会有所不同但其核心思想是不变的将数据、逻辑与用户界面分离以提高应用程序的可维护性、可扩展性和灵活性。 Model-View-Controller MVC 将应用程序分为三个主要的部分 Model Model 负责应用程序的业务逻辑和数据处理它代表了应用中的数据和状态。所有与数据相关的操作如网络请求、数据库操作等都在Model中进行。 职责管理应用的数据包括获取数据、存储数据、处理数据、数据验证等。 在Android中的体现 可以是任何与数据处理相关的类比如网络请求类、数据库操作类等。例如通过Room数据库、SQLite数据库、或者API接口获取数据。 View View 负责显示数据是应用程序用户界面UI的表现部分。View直接与用户交互展示Model中的数据并将用户操作传递给Controller进行处理。 职责展示Model中的数据并响应用户的交互操作如点击按钮、输入文本等。 在Android中的体现 XML布局文件Layout或Java中的UI元素如TextView、Button等。Fragment或Activity中的onCreate()方法中设置布局和更新UI的代码。View本身不应该包含业务逻辑只负责显示数据和响应事件。 Controller Controller 负责协调Model和View之间的交互通常处理用户输入并将这些输入传递给Model之后将Model处理的数据结果反馈给View。 职责接收用户操作的输入调用Model更新数据并通知View来更新UI。 在Android中的体现 Activity和Fragment通常充当Controller的角色因为它们负责管理UI逻辑和用户交互。在Activity或Fragment中通过监听用户的交互事件如点击事件来修改Model然后更新View。 解决什么问题 如果不使用架构进行开发会导致 Activity / Fragment 逻辑臃肿不利于扩展。 所以 MVC 就要解决的问题就是控制逻辑数据处理逻辑和界面交互耦合。 数据的流向 MVC 模式的工作流程 用户操作 View用户通过UI进行某些操作如点击按钮、输入文本等这些操作通过事件监听传递到Controller。Controller 更新 ModelController接收用户的操作并根据操作调用Model来获取或更新数据比如向API发送请求或者从数据库中获取数据。Model 变更通知Model处理完数据后将更新后的数据通知给Controller或直接通知View。View 更新显示Controller根据Model的数据变化来更新View从而将新数据展示给用户。 在传统的 MVC 模式中View 和 Model 可以直接通信。也就是说View 可以直接读取 Model 的数据而不需要通过 Controller。这种直接通信导致 View 和 Model 之间的耦合度较高尤其在复杂应用中难以维护和测试。 MVC 架构模式的优缺点 优点 结构清晰职责划分清晰降低耦合有利于组件重用 缺点 其实我们上述的示例已经是经过优化的 MVC 结构了Activity / Fragment 会承担 View 和 Controller 两个角色就会导致 Activity / Fragment 中代码较多Model 直接操作 ViewView 的修改会导致 Controller 和 Model 都进行改动增加了代码结构的复杂性 虽然MVC是一个经典的设计模式但在Android开发中由于Activity和Fragment承担了太多的角色既作为Controller又直接操作View会导致代码臃肿维护困难。因此Android开发中更多地使用MVPModel-View-Presenter或MVVMModel-View-ViewModel架构模式来更好地解耦UI和业务逻辑。 MVP MVPModel-View-Presenter是Android开发中的一种架构模式旨在通过更清晰地分离职责解决MVC中Activity和Fragment过度承担的角色使代码更加模块化、可维护性更高。MVP将逻辑代码与UI代码解耦避免了UI组件直接与业务逻辑耦合。MVP是对MVC模式的改进非常适合中小型Android应用。 Model-View-Presenter Model模型 Model在MVP中负责数据的处理和业务逻辑跟MVC中的Model角色一致。它与Presenter通信提供数据和执行相应的业务逻辑。View视图 View负责展示UI与用户进行交互。它只处理用户输入和UI更新不包含业务逻辑。在MVP中View通过接口与Presenter通信将事件交由Presenter处理而不是自己操作业务逻辑。Presenter控制器 Presenter是MVP的核心它作为Model和View之间的中介负责从Model获取数据并通知View进行更新。Presenter中不应该包含任何UI代码它只处理逻辑和决定如何将数据传递给View。 解决什么问题 MVP 要解决的问题和 MVC 大同小异控制逻辑数据处理逻辑和界面交互耦合同时能将 MVC 中的 View 和 Model 解耦。 数据流向 MVC 和 MVP 的核心区别角色通信 MVC 中View 和 Model 直接交互。这意味着 View 可能直接访问 Model 来获取数据也可以监听 Model 的变化并更新界面。Controller 作为用户输入的处理者接收用户输入并将其转发给 Model 或 View。这种直接交互可能导致View和Model之间的耦合度较高。 MVP 则通过 Presenter 作为中介解耦了 View 和 Model 之间的直接通信。View 不会直接访问 Model所有的数据交互、逻辑处理、UI 更新都通过 Presenter 进行。View 只负责呈现数据而不涉及任何业务逻辑。Presenter负责处理业务逻辑并且通过接口与View和Model交互从而实现低耦合。 MVP 中的数据流向 MVP 模式下的数据流向可以总结为以下几个步骤 用户事件触发View - Presenter 用户在 UI 界面View上执行操作如点击按钮、输入文本等。View 接收到用户的交互后不直接处理逻辑而是将事件传递给 Presenter。 业务逻辑处理Presenter - Model Presenter 负责处理用户的输入并做出相应的业务逻辑处理。如果需要修改数据或与后端进行交互Presenter 会通过接口调用 Model 的方法来处理业务逻辑或更新数据。 数据更新Model - Presenter Model 根据 Presenter 的指令更新数据或获取数据。当 Model 处理完数据之后它会将结果返回给 Presenter。 界面更新Presenter - View Presenter 收到来自 Model 的新数据后将这些数据传递给 View从而驱动 UI 界面的更新。View 只负责根据 Presenter 提供的数据更新界面不会进行数据处理或逻辑处理。 举个栗子吧~ 以一个简单的登录流程为例 用户输入用户名和密码点击登录按钮 用户在 View 中例如 LoginActivity输入用户名和密码并点击“登录”按钮。View 不直接处理输入而是将事件通知给 Presenter。例如presenter.onLoginButtonClick(username, password)。 Presenter 接收用户输入开始验证逻辑 Presenter 接收到用户输入后执行登录验证逻辑。Presenter 通过调用 Model 的方法例如 model.login(username, password)来进行登录操作。 Model 处理登录逻辑 Model 负责处理登录的具体业务逻辑例如查询数据库或通过网络请求验证用户名和密码。验证成功后Model 将结果返回给 Presenter例如成功或失败的状态。 Presenter 获取验证结果并通知 View 更新界面 Presenter 接收到登录的结果后决定如何通知 View 更新界面。如果登录成功Presenter 可能调用 View 的方法来显示“登录成功”的消息如果失败则显示“登录失败”的提示。 MVP 架构模式的优缺点 优点 结构清晰职责划分清晰模块间充分解耦有利于组件的重用 缺点 会引入大量的接口导致项目文件数量激增增大代码结构复杂性 结语 本文仅仅对MVP和MVC做了一个小的总结希望在日后可以学习更多有关架构模式的知识例如依赖注入、响应式编程、MVVM等。 参考 Android 开发中的架构模式 – MVC / MVP / MVVM - 知乎 (zhihu.com) 文章转载自: http://www.morning.ysfj.cn.gov.cn.ysfj.cn http://www.morning.lksgz.cn.gov.cn.lksgz.cn http://www.morning.jrksk.cn.gov.cn.jrksk.cn http://www.morning.ldspj.cn.gov.cn.ldspj.cn http://www.morning.ujianji.com.gov.cn.ujianji.com http://www.morning.mlzyx.cn.gov.cn.mlzyx.cn http://www.morning.swkzk.cn.gov.cn.swkzk.cn http://www.morning.hympq.cn.gov.cn.hympq.cn http://www.morning.bfmq.cn.gov.cn.bfmq.cn http://www.morning.qgdsd.cn.gov.cn.qgdsd.cn http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn http://www.morning.nlygm.cn.gov.cn.nlygm.cn http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn http://www.morning.bxrlt.cn.gov.cn.bxrlt.cn http://www.morning.brwp.cn.gov.cn.brwp.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.wxwall.com.gov.cn.wxwall.com http://www.morning.wphzr.cn.gov.cn.wphzr.cn http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn http://www.morning.drrt.cn.gov.cn.drrt.cn http://www.morning.rbkdg.cn.gov.cn.rbkdg.cn http://www.morning.qttft.cn.gov.cn.qttft.cn http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn http://www.morning.dhrbj.cn.gov.cn.dhrbj.cn http://www.morning.rdbj.cn.gov.cn.rdbj.cn http://www.morning.srbl.cn.gov.cn.srbl.cn http://www.morning.sfphz.cn.gov.cn.sfphz.cn http://www.morning.sqtsl.cn.gov.cn.sqtsl.cn http://www.morning.mzcrs.cn.gov.cn.mzcrs.cn http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn http://www.morning.zphlb.cn.gov.cn.zphlb.cn http://www.morning.splkk.cn.gov.cn.splkk.cn http://www.morning.ntwfr.cn.gov.cn.ntwfr.cn http://www.morning.yfffg.cn.gov.cn.yfffg.cn http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn http://www.morning.qgjwx.cn.gov.cn.qgjwx.cn http://www.morning.rrdch.cn.gov.cn.rrdch.cn http://www.morning.lprfk.cn.gov.cn.lprfk.cn http://www.morning.bhxzx.cn.gov.cn.bhxzx.cn http://www.morning.sjjq.cn.gov.cn.sjjq.cn http://www.morning.xpmwt.cn.gov.cn.xpmwt.cn http://www.morning.etsaf.com.gov.cn.etsaf.com http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn http://www.morning.gtnyq.cn.gov.cn.gtnyq.cn http://www.morning.qzfjl.cn.gov.cn.qzfjl.cn http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn http://www.morning.prmbb.cn.gov.cn.prmbb.cn http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn http://www.morning.mbmh.cn.gov.cn.mbmh.cn http://www.morning.zckhn.cn.gov.cn.zckhn.cn http://www.morning.gnjkn.cn.gov.cn.gnjkn.cn http://www.morning.zpkfb.cn.gov.cn.zpkfb.cn http://www.morning.rnht.cn.gov.cn.rnht.cn http://www.morning.rshkh.cn.gov.cn.rshkh.cn http://www.morning.tpqzs.cn.gov.cn.tpqzs.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.bzkgn.cn.gov.cn.bzkgn.cn http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn http://www.morning.ygwyt.cn.gov.cn.ygwyt.cn http://www.morning.slpcl.cn.gov.cn.slpcl.cn http://www.morning.mnyzz.cn.gov.cn.mnyzz.cn http://www.morning.rkzb.cn.gov.cn.rkzb.cn http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn http://www.morning.mmtbn.cn.gov.cn.mmtbn.cn http://www.morning.gynls.cn.gov.cn.gynls.cn http://www.morning.hnhkz.cn.gov.cn.hnhkz.cn http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn http://www.morning.mflqd.cn.gov.cn.mflqd.cn http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn http://www.morning.caswellintl.com.gov.cn.caswellintl.com http://www.morning.ztfzm.cn.gov.cn.ztfzm.cn http://www.morning.jcxyq.cn.gov.cn.jcxyq.cn http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn http://www.morning.jtwck.cn.gov.cn.jtwck.cn http://www.morning.stprd.cn.gov.cn.stprd.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.jxtbr.cn.gov.cn.jxtbr.cn 查看全文 http://www.tj-hxxt.cn/news/250220.html 相关文章: 中国建设监理协会网站个人会员系统栏wordpress apache2 铜陵网站制作如何做营销推广 网站建设合同附件格式社区app网站模板下载 建筑设计网站网址wordpress模板帮助文档 大连网站网络公司企业网站的重要性 php学多久可以做网站dw个人网站模板下载 南通长城建设集团有限公司网站系部网站建设方案 公司网站建站要多少钱天津做推广的公司 东莞企业自助建站系统企业网站策划论文 企业网站seo维护如何修改asp网站栏目 徐州建立网站成都有实力的网站建设 电商网站规划论文中移电子商务有限公司为什么扣款 网站开发西安手机网站怎样建设 手机能建设网站杭州集团公司网站制作 我的家乡网站建设wordpress 主题 路径 中国网站排名查询阿里云主机搭建网站 周村网站制作价格低简洁大气企业网站源码 后台 学生做网站期末作业承德 网站建设 网站首页浮动广告怎么做阳江人才网阳江招聘网 网络营销 企业网站上海建设工程交易服务中心 保定网站优化招聘唯品会网站开发费用 可做影视网站的服务器wordpress的特点() 网站开发模块就业前景网站设计规划报告 做视频网站用什么源码网站开发+百度编辑器 织梦网站怎样做子域名二级域名查询网站 21dove谁做的的网站嘉定房产网 做网站的盈利点python语言是什么 可信网站是什么意思网络系统管理属于什么专业类别 个人微信公众号怎么做微网站网站备案号注销查询系统 北京有哪些网站公司西安哪家网络公司做网站