iOS开发 使用viper架构构建复杂页面
iOS开发常用的页面架构:
- MVC
- MVVM
- VIPER
viper模块结构 及 交互方式

- 视图:根据展示器的要求显示界面,并将用户输入反馈给展示器。
- 展示器:包含为显示(从交互器接受的内容)做的准备工作的相关视图逻辑,并对用户 输入进行反馈(从交互器获取新数据-->处理成View需要的数据---> 更新view)。
- 交互器:包含由用例指定的业务逻辑(只有业务数据处理)。
- 实体:包含交互器要使用的基本模型对象(瘦Model)。
- 路由:包含用来描述屏幕显示和显示顺序的导航逻辑。
作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:413038000,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!
Presenter 和 View

- 各个视图将事件传递给Presenter处理。
- Presenter处理生成View需要的数据,并传给View 更新页面。
- 根据 接口隔离原则 ,每个View对应两个接口。
- 用于更新View: UpdateUIInterface (View实现接口)
- 将事件传递给Presenter。 如果UI层级较多可以 利用UIResponder将所有事件传给控制器然后再传给Presenter.
Presenter 和 Interactor

- Presenter就业务数据与UI的桥梁。
使用viper的好处
- 业务代码与ui代码分离,易于进行单元测试。
单元测试举例 (借助OCMock)
-
Presenter测试, P与V。 测试内容为业务数据到View的处理逻辑
image
-
Interactor测试, 侧重与数据处理
image
网友评论