如何拆分View Controller進而實現輕量級的View Controller[UIKit]

參考文章來自objcio網站

 

爲什麼要編寫輕量級的View Controller??

 

1、作爲iOS項目中最大的文件,ViewControllers中的代碼複用率幾乎是最低的

2、重量級的View COntroller加大了測試的複雜度。

 

所以關注ViewController的瘦身,把業務邏輯、網絡請求、Views的代碼移到合適的地方,進而提高代碼可讀性、降低耦合、提高複用、降低測試難度極爲重要

 

一、把DataSource和其他Protocols分離出來

 

 

比如uiTableView中的DataSource大多都是對數組做的一些操作,可以把數組操作相關的代碼移到單獨的類中。可以使用block或者delegate來設置一個cell。

 

二、把業務邏輯、網絡請求邏輯移動到Model中

 

業務邏輯類的代碼要放到Model對象中。但是對於不能輕易移動到Model對象中,但是和Model代碼相關的,我們可以創建一個Store類

 

Store被稱爲服務層或者倉庫,主要關心的是數據加載、緩存和設計數據棧

 

網絡請求邏輯也要移動到Model層中,不要在ViewController中做網絡請求的邏輯。你應該把網絡請求封裝到一個類中。這樣你的ViewController就可以在之後通過回調函數來請求網絡了。

 

三、把View代碼移到View層

 

不要在ViewController中構建複雜的view層次結構。可以把views封裝到UIView的子類中。對代碼的重用和測試都帶來很大的幫助。

 

補充

 

1、ViewController主要做的事情是與其他關聯的ViewController、Model、View之間進行通信。

 

2、ViewController和Model對象之間的消息傳遞可以使用KVO、fetched results Controller

 

3、當一個ViewController需要把某個狀態傳遞給其他多個ViewController時,可以使用代理模式處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章