架構(gòu)優(yōu)點(diǎn):
一個(gè)VIPER模塊可以看做是一個(gè)獨(dú)立的組件往枷,可以被單獨(dú)封裝成一個(gè)庫登舞,app就負(fù)責(zé)將各個(gè)模塊連接起來贰逾,實(shí)現(xiàn)了模塊間的解耦。當(dāng)業(yè)務(wù)需求更改菠秒,只需要修改交互器
疙剑,基本上就可以實(shí)現(xiàn)了。
View:視圖層践叠,平時(shí)用的UIViewController
言缤。主要負(fù)責(zé)視圖的顯示、布局禁灼,用戶事件的接受以及轉(zhuǎn)發(fā)管挟,簡單的顯示邏輯。
Interactor:交互器弄捕,核心部分僻孝。主要負(fù)責(zé)交互的工作,業(yè)務(wù)邏輯守谓,網(wǎng)絡(luò)請求穿铆,數(shù)據(jù)持久化處理,這一層獲取到是最原始的數(shù)據(jù)分飞,經(jīng)過解析悴务,處理成視圖層
可以直接使用數(shù)據(jù)睹限。
Presenter:展示器譬猫。主要解析交互器給的數(shù)據(jù)讯檐,和調(diào)用視圖層
的接口。擁有視圖層
相關(guān)的各種狀態(tài)和配置染服,執(zhí)行交互器
的業(yè)務(wù)邏輯别洪,調(diào)用視圖層
的接口把數(shù)據(jù)直接展示出來。
Entity::實(shí)體模型對象柳刮,平時(shí)用的model
Router:路由器挖垛。主要負(fù)責(zé)跳轉(zhuǎn)頁面。依賴注入對應(yīng)的目的模塊秉颗,減少了模塊間的耦合痢毒。