今天学到了一个新的ios开发架构模式叫VIPER。
一般的MVC开发模式
- 出现的问题
- view层执行了过都的业务代码
- view层没有和model进行分离
- 控制器过于厚重
- 代码的重用价值差
VIPER
- 含义:
- 视图 (View),交互器 (Interactor),展示器 (Presenter),实体 (Entity) 以及路由 (Routing)
- 视图:UI展示
- 交互器 -- 包括关于数据和网络请求的业务逻辑,例如创建一个实体(数据),或者从服务器中获取一些数据。
- 展示器 -- 包含UI层面的业务逻辑以及在交互器层面的方法调用。
- 实体 -- 普通的数据对象,不属于数据访问层次,因为数据访问属于交互器的职责。
- 路由器 -- 用来连接VIPER的各个模块。
- 架构图
- 相关资料
segmentfault.com/a/119000000… segmentfault.com/a/119000000…
- 我们的方案
- DataTool : 数据提供者 -> 类似交互器
- model 实体
- view 视图
- Presener 负责将model展示在view上, 并涵盖了UI层面的业务逻辑
- controller 负责, 取数据, 让presenter拿到model 展示给view, 并处理view的事件 统一调度, 管理生命周期
- 实战
- 保证数据相关业务逻辑的独立
- 保证视图的独立
- 2.1 剔除业务逻辑
- 2.2 剔除模型