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

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