iOS开发 使用viper架构构建复杂页面

6,791 阅读1分钟

iOS开发常用的页面架构:

  • MVC
  • MVVM
  • VIPER

viper模块结构 及 交互方式

viper结构

  • 视图:根据展示器的要求显示界面,并将用户输入反馈给展示器。
  • 展示器:包含为显示(从交互器接受的内容)做的准备工作的相关视图逻辑,并对用户 输入进行反馈(从交互器获取新数据-->处理成View需要的数据---> 更新view)。
  • 交互器:包含由用例指定的业务逻辑(只有业务数据处理)。
  • 实体:包含交互器要使用的基本模型对象(瘦Model)。
  • 路由:包含用来描述屏幕显示和显示顺序的导航逻辑。

Presenter 和 View

Presenter 与 View

  • 各个视图将事件传递给Presenter处理。
  • Presenter处理生成View需要的数据,并传给View 更新页面。
  • 根据接口隔离原则 ,每个View对应两个接口。

Presenter 和 Interactor

Presenter 和 Interactor

  • Presenter就业务数据与UI的桥梁。

使用viper的好处

  • 业务代码与ui代码分离,易于进行单元测试。

单元测试举例 (借助OCMock)

  • Presenter测试, P与V。 测试内容为业务数据到View的处理逻辑

  • Interactor测试, 侧重与数据处理

其他资料