換了工作後,發現公司的專案用著一種自身淺薄經驗沒有看過的架構在開發,而且有著大量的protocol與delegate,甚至在自身的class 呼叫自己的protocol function,看得眼花撩亂。
查下去之後才知道,原來公司用了所謂的VIPER開發架構。
從第一天帶著困惑與恐懼,陸陸續續看了一些文章跟影片後,大概歸納出對VIPER架構的認識。
對所有初學者來說,是沒有什麼開發架構的。一個簡單的Table View畫面app也不太需要什麼架構。畢竟就只有一個Table View而已。
但是開發架構會一路從沒有架構(所有東西都塞在ViewController裡面)開始慢慢拆分,往MVC,MVVM/MVP,MVVM-C發展,最後可能就會走向VIPER
這幾個開發架構從單純走向複雜,是一層層為了解決前一層(或其他開發架構)所遇到或產生的問題而形成的。
VIPER可以說是比較複雜的一種控制方式
他把每一套畫面功能組都做成一套Module,然後用VIPER這五個東西串起來。
V: View(Controller)
I: Interactor
P: Presenter
E: Entity
R: Router
在VIPER架構中,每一個部分都分別負責了不同的工作。整個過程會有點雞生蛋蛋生雞的關係,因為他們會不斷地互相溝通協作如下:
