MVC 和 MVVM
MVVM
MVVM 是 Model-View-ViewModel 的简写,MVVM 模式和 MVC 模式一样,主要目的是分离视图(View)和模型(Model)
MVC 回顾
- MVC 结构图
- MVC 存在的问题
- 模型的代码很少
- 控制器的代码一不小心就越来越多
- 不好测试
MVVM
- MVVM 结构图
-
MVVM 概念
- 在 MVVM 中,
view
和view controller
正式联系在一起,我们把它们视为一个组件 view
和view controller
都不能直接引用 model,而是引用视图模型view model
是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他代码
- 在 MVVM 中,
-
MVVM 使用注意事项
view
引用view model
,但反过来不行view model
引用了model
,但反过来不行- 如果我们破坏了这些规则,便无法正确地使用 MVVM
MVVM 的优点
- 低耦合:
View
可以独立于Model
变化和修改,一个ViewModel
可以绑定到不同的View
上 - 可重用性:可以把一些视图逻辑放在一个
ViewModel
里面,让很多view
重用这段视图逻辑 - 独立开发:开发人员可以专注于业务逻辑和数据的开发
ViewModel
,设计人员可以专注于页面设计 - 可测试:通常界面是比较难于测试的,而 MVVM 模式可以针对
ViewModel
来进行测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了