为了解决 MVC 架构中的重量级视图控制器问题,有两种架构方案:
1. MVVM
MVVM(Model-View-ViewModel)的核心思想是将业务逻辑从 ViewController 中剥离,作为 View-Model:
![](https://img.haomeiwen.com/i56726/2f08574b24863207.gif)
数据流
![](https://img.haomeiwen.com/i56726/5ae2810369e253de.png)
iOS MVVM 应用层架构
View-Model 不应该包含跟视图有关的逻辑,即不应该 import UIKit。
![](https://img.haomeiwen.com/i56726/adb57bc427901f7d.png)
工程目录结构
自己根据理解设计的工程目录:
- Project
- View
- Common
- ViewFeature1 // 对应交互设计页面
- ViewX
- ViewY
- ViewControllerA
- ViewFeature2
- ViewZ
- ViewControllerB
- View-Model
- UseCaseGroup1 // 对应一系列相关的产品用例
- UseCaseGroup2
- Model
- EntityGroup1 // 对应一系列相关的系统实体
- EntityGroup2
- Vender
- ...
- View
网友评论