ios-Viper架构开发

409 阅读1分钟

今天学到了一个新的ios开发架构模式叫VIPER。

一般的MVC开发模式

  • 出现的问题
    • view层执行了过都的业务代码
    • view层没有和model进行分离
    • 控制器过于厚重
    • 代码的重用价值差

VIPER

  • 含义:
    • 视图 (View),交互器 (Interactor),展示器 (Presenter),实体 (Entity) 以及路由 (Routing)
    • 视图:UI展示
    • 交互器 -- 包括关于数据和网络请求的业务逻辑,例如创建一个实体(数据),或者从服务器中获取一些数据。
    • 展示器 -- 包含UI层面的业务逻辑以及在交互器层面的方法调用。
    • 实体 -- 普通的数据对象,不属于数据访问层次,因为数据访问属于交互器的职责。
    • 路由器 -- 用来连接VIPER的各个模块。
    • 架构图 image.png
    • 相关资料
      segmentfault.com/a/119000000… segmentfault.com/a/119000000…
  • 我们的方案
    • DataTool : 数据提供者 -> 类似交互器
    • model 实体
    • view 视图
    • Presener 负责将model展示在view上, 并涵盖了UI层面的业务逻辑
    • controller 负责, 取数据, 让presenter拿到model 展示给view, 并处理view的事件 统一调度, 管理生命周期
  • 实战
    1. 保证数据相关业务逻辑的独立
    2. 保证视图的独立
      • 2.1 剔除业务逻辑
      • 2.2 剔除模型