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