关於介绍 MVC、MVP、MVVM 的文章,
网络上随便搜索都可以找到超多。
MVC、MVP、MVVM 都是一种软件结构模式,
我在这篇文章中会大致介绍 MVC、MVP、MVVM。
MVC 模式(Model-View–Controller)把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
Controller 是 Model 和 View 之间的连接器。
在 MVC 中,Controller 管理 View 的整个生命周期,Controller 持有 View、Model,Controller 和 View 之间不够独立,ViewController 最後需要处理很多事情,因此变得很厚重。
这也导致 Controller 测试困难,View 层的控制能力太弱,
同时也因为 Controller 处理所有的业务逻辑,独立性强,所以当业务逻辑需要变更的时候,只需要动到 Controller 就好了。
链接附上:https://zh.wikipedia.org/zh-tw/MVC
MVP(Model-View-Presenter),是电脑软件设计工程中一种对针对 MVC 模式,再审议後所延伸提出的一种软件设计模式。
MVP 的产生是为了解决 MVC 中的 Controller 越来越大包以至於测试困难的问题。
在 MVP 中 View 管理 Presenter,Presenter 管理 Model,View 不能直接访问 Model,
通过这样,将 Presenter 真正独立出来,所以测试的时候就可以独立测试 Presenter 业务逻辑了。
链接附上:https://zh.wikipedia.org/wiki/MVC
MVVM(Model–View–ViewModel)
在 MVVM 中,View 可以独立於 Model,ViewModel 也可以连接到一个 view 或者多个 view 上,View、Model 之间的独立性强,将业务逻辑与视图独立开来。
同时也能把一些视图逻辑放在一个 ViewModel 里面,这可以让很多 View 重复用这段视图逻辑,可以减少写重复的工作。
不过也因为 Model、View 的紧密联系、互相绑定,所以一旦出了bug,则很难判断到底是 Model 还是 View 上出了问题。
链接附上:https://zh.wikipedia.org/zh-tw/MVVM
这真的是浅谈啦,
我在学习过程上主要是用 MVVM 进行开发的,
所以对 MVC、MVP 不太了解,
因此写这篇文也是为了让我更了解这三种结构模式。
<<: Day01【JS】Behavior Delegation 行为委派
>>: 【把玩Azure DevOps】Day5 版本控制系统Repos:建立第二个Repo,TFVC Repo
故事依时间序简述 故事背景:某航空公司(以下简称某航) 某航於2017上半年裁员,共计裁减约600名...
我的网站在电脑上显示的画面是正常的,但是一上传到服务器上,背景和影片就无法显示了,到底是为什麽~~ ...
在上个月初的时候,偶然在IThelp看到这篇讨论 setState後画面没有立即Render,决定趁...
昨天已经介绍了产生圆圈图的范例,今天将要带入真实资料作范例,接下来将会使用先前的县市人口数的资料制作...
上一篇介绍 firestore CRUD 的各种方式,今天要来介绍进阶的查询资料方式,利用条件去过滤...