學習如何用 VIPER 構建iOS架構

weixin_34148340發表於2017-04-14

VIPER踐行"單一職責原則"最好的架構,由檢視 (View),互動器 (Interactor),展示器 (Presenter),實體 (Entity) 以及路由 (Routing) 組成。

  • 檢視:UI展示
  • 互動器:包括關於資料和網路請求的業務邏輯,例如建立一個實體(資料),或者從伺服器中獲取一些資料。
  • 展示器:包含UI層面的業務邏輯以及在互動器層面的方法呼叫。
  • 實體:普通的資料物件,不屬於資料訪問層次,因為資料訪問屬於互動器的職責。
  • 路由器:用來連線VIPER的各個模組。
1780916-e61c668ec20fbfe2.png
  • 專案中架構如此:


    1780916-44d24ccc0c7f45ed.png

1.首先檢視不再擁有模型。


1780916-1f96f3811c404588.png

2.展示器擁有模型以及view,準備所有view需要的最終資料,進行最後的賦值操作。並涵蓋了UI層面的業務邏輯,檢視的block回撥也會在展示器中操作處理事件,以及加入view的監聽通知事件。


1780916-7aba8c3738dc0b72.png

3.互動器
1780916-b3493029b61ca6d8.png

4.實體就是模型,資料物件。

5.路由,控制器連線VIPER的各個模組,統一排程, 管理生命週期


1780916-75791793ae30db65.png

相關文章