MVC、MVP、MVVM理解 在什么情况下用什么页面架构

1、不用页面架构
优点:简单
缺点:可读性、可维护性、可扩展性很弱

应用场景:欢迎、关于、帮助、隐私条款、用户协议等待

2、mvc
M:model 模型,包括数据请求及操作
V:xml
C:Controller activity 数据请求后页面逻辑操作
优点:将模型进行解耦
缺点:1、作为controller的activity里面包含了view的代码,角色不清晰,静态
2、 动态角度,作为包含view的代码的activity的权利很大,伴随时间的推移,activity代码越来越大

应用场景(使用优点,简单的数据展示页面):设置页面、历史订单

3、mvp
M:模型
V:activity/fragment+xml+View的interface
P:Presenter
优点:角色清晰
缺点:1、新增viewInterface,导致增加一个view的功能需要修改三个地方

应用场景:复杂多变的页面

4、MVVM 技术依赖 双向的数据绑定的技术-》 dataBinding
M:模型
V:activity/fragment+xml
VM:viewModel
优点:1、角色清晰,没有interface 2、不需要findviewbyId
缺点:阅读性差 xml里包含代码

应用场景:复杂多变的页面

5、Compose 数据驱动 去掉了xml compose在android上只能用kotlin编写
M:模型
V:activity/fragment + composable
VM:ViewModel
优点:布局系统的 Jetpack Compose 实现有两个主要目标:一是实现高性能,二是让开发者能够轻松编写自定义布局。在 Compose 中,通过避免多次测量布局子级可实现高性能。如果需要进行多次测量,Compose 具有一个特殊系统,即固有特性测量
缺点:学习成本
应用场景:

详见
https://zhuanlan.zhihu.com/p/540295707

你可能感兴趣的:(移动端,android,mvc,架构)