跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 是让人提神醒脑的 MVP 、MVVM 关系精讲
未分類
2020 年 7 月 21 日

是让人提神醒脑的 MVP 、MVVM 关系精讲

是让人提神醒脑的 MVP 、MVVM 关系精讲

資深大佬 : KunMinX 8

先说结论

MVP 本质:是广义上的架构模式,适用于面向实体或虚拟用户接口的开发。

它主要是在 MVC 的背景下,通过 依赖倒置,来解决 逻辑复用 难、实现更替 难 的问题。

MVVM 本质:是狭义上的架构模式,专用于页面开发。

它主要是在多人协作的软件工程的背景下,通过只操作 ViewModel 中映射的视图数据 来刷新视图状态,以此来解决 视图调用的一致性问题 从而规避不可预期的错误。

所以二者的区别是什么?

区别就在于:

一个是广义上的架构:

你可以通过同一套逻辑去驱动不同品牌设备的实体用户接口(比如不同品牌的耳机线控),或虚拟用户接口(比如 Android 视图,但存在一致性问题而不推荐);

是让人提神醒脑的 MVP 、MVVM 关系精讲

一个是狭义上的架构:

专用于可视化页面的开发,通过解决一致性问题 来规避不可预期的错误。

是让人提神醒脑的 MVP 、MVVM 关系精讲

所以轻易地你就可发现,二者分别适用于 在各自的专场下 解决不同的问题,根本没有可比性,更没有所谓的 谁“好”谁“坏” 之分。

而且除了没有可比性,二者之间其实也没任何关系,MVP 的特质是 依赖倒置,MVVM 的特质是 数据驱动,二者没有说谁演化自谁的关系。回到刚刚所说的:“根本就是 特定场景下解决特定问题 的两种截然不同的架构模式”。

没有所谓的 MVVM == MVP + DataBinding,正如没有所谓的 雷峰塔 == 雷锋 + 塔。

完整原文:

https://juejin.im/post/5f03ef91f265da22df3ccc5a

版权声明

本文以 CC 署名-非商业性使用-禁止演绎 4.0 国际协议 发行。

Copyright © 2019-present KunMinX

是让人提神醒脑的 MVP 、MVVM 关系精讲

大佬有話說 (3)

  • 資深大佬 : ai277014717

    .net framework mvc 框架好像就是用的 mvvm 分层
    本来就是为 h5 设计的

  • 資深大佬 : ai277014717

    @ai277014717 移动端按照这个结构分层后会发现,缺少 DataBinding 层。代码不知道放在哪里。所以我理解按照分层的结构来看。传统的 MVC 中引入 VM 层。就算 MVVM 。

  • 主 資深大佬 : KunMinX

    @ai277014717

    ios 的 mvc 和 android 的 mvc 在约定上有一定区别。

    mvc 某种程度上可说是 ios 下的最佳约定。mvvm 主要适用于有 null 安全风险的页面开发场景。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具