浅谈 mvc 、mvvm以及mvp

  mvc 的是 model view controller 的缩写,一种通过业务逻辑、数据、界面显示分离的方法进行代码组织的方法;其中 M 层处理数据、业务逻辑;v 层处理界面的显示结果;c 层起到桥梁的作用,来控制 v 层 和 M 层通信,以此达到分离视图显示和业务逻辑层;

 

  mvp 是从 mvc 演化而来的,与 mvc 有一定的相似性, p 即 presenter 作为view 和 model 交互的桥梁纽带,处理与用户交互的逻辑;v 即 view 负责绘制 dom 元素、以及与用户的交互;model 负责存储、检索、操作数据;

  

  mvp 和 mvc 的区别主要是:view 和 model 并不直接交互,而是通过与 presenter 交互来实现与 model 间接的交互;而在 mvc 中 view 和 model 是可以直接进行交互的;在 mvp 中,通常 view 和 presenter 是一对一的,但是复杂的 view 可能绑定多个 presenter 来处理逻辑;而在 mvc 中,controller 是基于行为层次的,并且可以被多个 view 共享,controller 可以负责决定显示那个 view;prresenter 与 view 的交互是通过接口来进行的;

 

  mvp 的缺点就是增加了很多的接口和实现类,代码逻辑虽然清晰,但是代码量会比较大;

 

  mvvm 是 mvp 的升级,其中 VM 是 viewModel 的缩写,可以理解成是 presenter 和 view 的结合;viewModel 和 view 之间的交互不在是依赖于接口,而是通过 Data Binding 完成,而 Data Binding 可以实现双向的交互,从而使得视图和控制层之间的耦合度进一步的降低,分离更为彻底,同时减轻了 activity 的压力;

posted @ 2019-09-09 09:14  mumengchun  阅读(412)  评论(0编辑  收藏  举报