MVP模式和MVVM模式学习笔记

MVP模式

模型-视图-表示器,也就是MVP模式。是mvc模式的一种衍生模式,专注于改进表示逻辑。在这里插入图片描述

M

Module,模型层,用户数据管理,通常是一些 javaBean, db,sharePreference,network,图片处理等耗时操作均应该放在该层。

V

View,视图层,一般指的是四大组件,四大组件对作为View,来完成应用程序界面的展示

P

Presenter 控制层,也叫中间层。相当于一个中间桥梁的作用,用于解决View 层与 Module 层的耦合,一般一个 Presenter 可以对应多个 View,一个Presenter 也可以对应多个Module

MVP原理理解: 首先视图层V提交一个事件交给控制器P,控制器要么调用ajax去M中获取一些数据,要么根据业务逻辑直接去操作V的DOM。P层是MVP一个重要的位置,它是视图V和模型M的一个中转站。看一些例子可知,使用MVP模式的时候,控制器中大部分代码,其实都在操作dom。

  • 关键点:
    View不再负责同步的逻辑,而是由Presenter负责。Presenter中既有业务逻辑也有同步逻辑。
    View需要提供操作界面的接口给Presenter进行调用。(关键)

MVVM

模型-视图-视图模型是一种基于MVP的架构模式,它试图更清晰的将用户界面开发从应用程序的业务逻辑与行为中分离。

M

Module,模型层,用户数据管理,通常是一些 javaBean, db,sharePreference,network,图片处理等耗时操作均应该放在该层。

V

View,视图层,一般指的是四大组件,四大组件对作为View,来完成应用程序界面的展示

VM

ViewModule 控制层 ViewModule
这里需要解释一下什么是ViewModel。ViewModel的含义就是 “Model of View”,视图的模型。它的含义包含了领域模型(Domain Model)和视图的状态(State)。 在图形界面应用程序当中,界面所提供的信息可能不仅仅包含应用程序的领域模型。还可能包含一些领域模型不包含的视图状态,例如电子表格程序上需要显示当前排序的状态是顺序的还是逆序的,而这是Domain Model所不包含的,但也是需要显示的信息。
可以简单把ViewModel理解为页面上所显示内容的数据抽象,和Domain Model不一样,ViewModel更适合用来描述View。
MVVM理解: MVVM模式中,我们更多做的V层和M层的操作,V能够监听到你V层上的改变,通过VM层去调用你写的一些逻辑代码,而这些逻辑代码的调用,又帮助你改变了M层的数据。当M层数据改变是,VM层又会自动把改变映射到V层。
从MVVM模式中,我们的重点是M层的代码编写~

MVVM的优缺点
  • 优点:
    提高可维护性。解决了MVP大量的手动View和Model同步的问题,提供双向绑定机制。提高了代码的可维护性。
    简化测试。因为同步逻辑是交由Binder做的,View跟着Model同时变更,所以只需要保证Model的正确性,View就正确。大大减少了对View同步更新的测试。
  • 缺点:
    过于简单的图形界面不适用,或说牛刀杀鸡。
    对于大型的图形应用程序,视图状态较多,ViewModel的构建和维护的成本都会比较高。
    数据绑定的声明是指令式地写在View的模版当中的,这些内容是没办法去打断点debug的。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值