iOS - VIPER 架構模式


1、VIPER

  • 從字面意思來理解,VIPER 即 View Interactor Presenter Entity Router(展示器(視圖) 交互器 協調器 實體(數據) 路由器),迄今為止,划分責任的粒度是很好的選擇。VIPER 在責任划分層面進行 了迭代,VIPER 分為五個層次:

    • 展示器 -- 包含 UI 層面的業務邏輯以及在交互器層面的方法調用。
    • 交互器 -- 包括關於數據和網絡請求的業務邏輯,例如創建一個實體(數據),或者從服務器中獲取一些數據。為了實現這些功能,需要使用服務、管理器,但是他們並不被認為是 VIPER 架構內的模塊,而是外部依賴。
    • 實體 -- 普通的數據對象,不屬於數據訪問層次,因為數據訪問屬於交互器的職責。
    • 路由器 -- 用來連接 VIPER 的各個模塊。
  • 1)VIPER 模式下的三個特性的分析:

    • 任務均攤 -- 毫無疑問,VIPER 是任務划分中的佼佼者。
    • 可測試性 -- 不出意外地,更好的分布性就有更好的可測試性。
    • 易用性 -- 必須為很小功能的類寫出大量的口。
  • 2)iOS VIPER 示意圖:

    VIPER1

    • 基本上,VIPER 模塊可以是一個屏幕或者用戶使用應用的整個過程。VIPER 是第一個通過路由器實現明確的地址導航模式。

    • 當我們把 VIPER 和 MV(X) 系列作比較時,我們會在任務均攤性方面發現一些不同: Model 邏輯通過把實體作為最小的數據結構轉換到交互器中。Controller/Presenter/ViewModel 的 UI 展示方面的職責移到了 Presenter 中,但是並沒有數據轉換相關的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM