view層的組織和調(diào)用方案筆記

一個(gè)不好的View層架構(gòu)


  1. 代碼混亂不規(guī)范
  2. 過多繼承導(dǎo)致的復(fù)雜依賴關(guān)系
  3. 模塊化程度不夠高,組件粒度不夠細(xì)
  4. 橫向依賴
  5. 架構(gòu)設(shè)計(jì)失去傳承

View代碼結(jié)構(gòu)的規(guī)定


代碼結(jié)構(gòu)

細(xì)節(jié)

1. 所有的屬性都使用getter和setter

在viewDidload里面只做addSubview的事情,然后在viewWillAppear里面做布局的事情(勘誤1),最后在viewDidAppear里面做Notification的監(jiān)聽之類的事情。至于屬性的初始化,則交給getter去做。

2.關(guān)于private methods,正常情況下ViewController里面不應(yīng)該寫

正常情況下ViewController里面一般是不會(huì)存在private methods的,這個(gè)private methods一般是用于日期換算、圖片裁剪啥的這種小功能。這種小功能要么把它寫成一個(gè)category,要么把他做成一個(gè)模塊,哪怕這個(gè)模塊只有一個(gè)函數(shù)也行。

MVC的拆分


1. 保留最重要的任務(wù),拆分其它不重要的任務(wù)

有一件事情Controller肯定逃不掉要做:協(xié)調(diào)V和M。也就是說,不管怎么拆,協(xié)調(diào)工作是拆不掉的。
只要不是Controller的核心邏輯,都可以考慮拆出去,然后在架構(gòu)的時(shí)候作為一個(gè)獨(dú)立模塊去定義,以及設(shè)計(jì)實(shí)現(xiàn)。

2.拆分后的模塊要盡可能提高可復(fù)用性,盡量做到DRY

根據(jù)第一心法拆開來的東西,很有可能還是強(qiáng)業(yè)務(wù)相關(guān)的,這種情況有的時(shí)候無法避免。但我們拆也要拆得好看,拆出來的部分最好能夠歸成某一類對象,然后最好能夠抽象出一個(gè)通用邏輯出來,使他能夠復(fù)用。即使不能抽出通用邏輯,那也盡量抽象出一個(gè)protocol,來實(shí)現(xiàn)IOP。這里有篇關(guān)于IOP的文章,大家看了就明白優(yōu)越性了。

/// TO-DO

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容