MVC
示意图
实线代表直接调用,虚线代表间接调用(回调、通过方法返回)。
主要内容
- MVC 全名是 Model View Controller 。
- Controller 作为控制器,通过用户输入,控制视图的展示,还可以通过 Model 层的数据组件,改变 View 层的展示。
-
Controller :
- 用户输入-> Model 更新。
- 用户输入-> View 更新。
- View :更新 Model 。
- Model:
- 回调通知 Controller 。
- 回调通知 View 。
Android
-
Activity
属于 Controller 。( Activity 某种角度上看,也是 View ) - Xml 等界面布局属于 View 。
优缺点
- 优点:对于复杂度不高的业务,使用 MVC ,代码会比较少,比较直接,也能快速实现。
- 缺点:由同一人来实现 View 和 Controller 部分。
MVP
示意图
-
实线代表调用,虚线代表回调。
主要内容
- View :负责视图展示。
- Model :负责提供数据。
-
Presenter :
- 负责处理逻辑。
- 将 Model 层数据适配为 View 层所需要的数据。
- Presenter 和 View 一一对应。
优缺点
- 优点: View 和 Model 的耦合降低。
- 缺点:因为 Presenter 和 View 一一对应,所以代码量多。
MVVM
示意图
主要内容
- View 的变化可以自动反映在 ViewModel , ViewModel 的数据变化也会自动反映到 View 上。
- View :负责视图展示。
- Model :负责提供数据。
- ViewModel :将 Model 层数据适配为 View 层所需要的数据。