您好,欢迎光临本网站![请登录][注册会员]  
文件名称: MVC与MVP与MVVM.pdf
  所属分类: Java
  开发工具:
  文件大小: 271kb
  下载次数: 0
  上传时间: 2019-09-01
  提 供 者: sunxiao*******
 详细说明:Android开发,MVC MVP和MVVM设计模式实现,以及他们的优缺点总结。3、VieW和Mode的同步消息是通过观察者模式进行,而同步操作是由 VieW自己请求Mode的数据然后对视图进行更新。 MVC的优缺点 优点: 1、把业务逻辑仝部分离到 Contro1er中,模块化程度高。当业务逻辑 变更的时候,不需要变更View和Mode1,只需要 Contro1ler换 成另外一个 Contro11er就行了( Swappable Contro1ler) 2、观察者模式可以做到多视图同时更新。 缺点: 1、 Contro1ler测试困难。因为视图同步操作是由View自己执行,而 view只能在有UI的环境下运行。在没有U环境下对 Contro1ler进行 单元测试的时候, Contro1ler业务逻辑的正确性是无法验证的: Contro11er更新 Model的时候,无法对View的更新操作进行断言。 2、View无法组件化。ⅵieN是强依赖特定的 Model的,如果需要把这 VieW抽出来作为一个另外一个应用程序可复用的组件就困难了 因为不同程序的的 Domain mode1是不一样的 MVP MVP其实是MVC的一种演进版本,它更简单,将MVC中的 Controller改为了 Presenter view通过接口与 Presenter进行交互,降低耦合,方便进行单元测试 view:负责绘制U元素、与用户进行交互( Activity、View、 Fragment都可以做为view层); Model:对数据的操作、对网络等的操作,和业务相关的逻辑处理; Presenter:作为View与Mode交互的中间纽带,处理与用户交互的逻辑。可以把 Presenter 理解为一个中间层的角色,它接受Mode层的数据,并且处理之后传递给View层,还需要 处理vieW层的用户交互等操作。 Presenter Observer Sync Events Manipulates-、Pu/sul b Interfaces Pass calls to ew Model User Interaction User 关键点: 1、View不再负贲同步的逻辑,而是由 Presenter负责。 Presenter中既有业务逻辑也有同步逻辑 2、ⅵiew需要提供操作界面的接∏给 Presenter进行调用。(关键) 对比在MVC中, Controller是不能操作view的,VieW也没有提供相应的接口;而在MVP 当中, Presenter可以操作Ⅴiew,Ⅴiew需要提供一组对界面操作的接口给 Preseηter进行调 用;Mode仍然通过事件广播自己的变更,但由 Presenter监听而不是VieW。 MVP( Passive view)的优缺点 优点 1、便于测试。 Presenter对view是通过接∏进行,在对 Presenter进行不依赖UI环境的单元测试的时 候。可以通过Mock一个View对象,这个对象只需要实现了view的接口即可。然后依赖注入到 Presenter 中,单元测试的时候就可以完整的测试 Presenter业务逻辑的正确性。 2、View可以进行组件化。在MVP当中,View不依赖Mode1。这样就可以让View从特定的业务场景中朏 离出来,可以说ⅵiew可以做到对业务逻辑完全无知。它只需要提供一系列接∏提供给上层操作。这样就可 以做高度可复用的view组件 缺点: 1、 Presenter中除了业务逻辑以外,还有大量的view->Mode1,Mode1- >view的手动同步逻辑,造成 Presenter比较笨重,维护起来会比较困难。 MVVM MVVM模式( Model-VieW- ViewMode模式),和MVP模式相比,MWM模式用 View model替换了 Presenter,其他层基本上与MVP模式一致, View Mode可以理解成 是view的数据模型和 Presenter的合体。 MWM采用双向绑定(data- binding):view的变动,自动反映在 View Model,反之亦然, 这种模式实际上是框架替应用开发者做了一些工作(相当于 View mode类是由库帮我们生 成的),开发者只需要较少的代码就能实现比较复杂的交互 View Model Binder ManIpulates Pass calls to\ View Model User Interaction User MvVM的调用关系 MVVM的调用关系和MVP一样。但是,在 Viewmode当中会有一个叫 Binder,或者是 Data- binding engine的东西。以前全部由 Presenter负责的view和 Model之同数据同步操 作交由给 Binder处玛。你只需要在Ⅶiew的模版语法当中,指令式地声眀ew上的显示的 内容是和Mode的哪块数据绑定的。当 Viewmodel对进行Mode更新的吋候, Binder 会自动把数据更新到vieW上去,当用户对VieW进行操作(例如表单输入), Binder也会 自动把数据夏新到 Model上去。这种方式称为:Two- way data- binding,双向数据绑定。 可以简单而不恰当地理解为一个模版引擎,但是会根据数据变吏实时渲染 关键点: MVW把V1ew和Mode1的同步逻辑自动化了。以前 Presenter负责的view和 Model同步不再手动地进行 操作,而是交由框架所提供的 Binder进行负责 只需要告诉 Binder,View显示的数据对应的是Mode1哪一部分即可 MvVM的优缺点 优点: 1、提高可维护性。解决了MVP大量的于动View和 Model 同步的问题,提供双向绑定机制。提高了代码的可维护性。 2、简化测试。因为同步逻辑是交由 Binder做的,View跟 着 Model同时变更,所以只需要保证 Model的正确性,VieW 就正确。大大减少了对View同步更新的测试。 缺点: 1、过于简单的图形界面不适用,或说牛刀杀鸡。 2、对于大型的图形应用程序,视图状态较多, ViewMode1 的构建和维护的成本都会比较高。 3、数据绑定的声明是指令式地写在View的模版当中的, 这些内容是没办法去打断点 debug的。 结语 可以看到,从MVC->MvP->MVM,就像一个打怪升级的过程。后者解决了前者遗留的问 题,把前者的缺点优化成了优点。同样的Demo功能,代码从最川始的堆文件,优化成 了最后只需要20几行代码就完成。MV模式之间的区分还是蛮清晰的,希望可以给对这些 模式理解比较模湖的同学带米一些参考和思路。 收藏
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: MVC与MVP与MVVM.pdf
 输入关键字,在本站1000多万海量源码库中尽情搜索: