問(wèn)題分析: ViewController的主要功能代碼大致體現(xiàn)為以下三個(gè)部分
?????????????????? 1棍郎,裝載數(shù)據(jù)其障;
???????????????????2,UI顯示邏輯(根據(jù)對(duì)應(yīng)數(shù)據(jù)做不同UI效果等)涂佃;
???????????????????3励翼,事件處理(交互相關(guān))
解決方案: 1蜈敢,單獨(dú)封裝View的創(chuàng)建相關(guān)代碼,不要直接在controller里創(chuàng)建視圖汽抚;
???????????????????2抓狭,盡量讓Controller的功能保持單一的數(shù)據(jù)裝載操作;
?????????????????? 3造烁,封裝各部分功能模塊否过,在ViewController里做調(diào)用操作,而不是一堆邏輯相關(guān)惭蟋。
詳述:ViewController過(guò)重說(shuō)白了還是封裝問(wèn)題苗桂,先了解清楚問(wèn)題的來(lái)源,才能從根本上解決問(wèn)題告组;面向?qū)ο笫菍?duì)對(duì)象行為和屬性的封裝煤伟,但關(guān)于委托則是另一種解釋?zhuān)磳?duì)象的行為需要其它對(duì)象的行為結(jié)果來(lái)實(shí)現(xiàn))。這也是我們說(shuō)的面向?qū)ο缶幊碳疵嫦蚪涌诘囊环N理解木缝,那么接口中的任意一個(gè)模塊如果“不負(fù)責(zé)任”便锨,那么它對(duì)應(yīng)的責(zé)任就要其它模塊承擔(dān),所以有“過(guò)重”這個(gè)現(xiàn)象我碟。另一個(gè)過(guò)重點(diǎn)就是:服務(wù)器端不做數(shù)據(jù)處理放案,給客戶(hù)端一批抽象數(shù)據(jù),我們都知道服務(wù)器的強(qiáng)大業(yè)務(wù)數(shù)據(jù)處理能力矫俺,如果給客戶(hù)端一批抽象數(shù)據(jù)的話(huà)卿叽,勢(shì)必造成客戶(hù)端要加一層數(shù)據(jù)處理邏輯,有經(jīng)驗(yàn)的同學(xué)還知道單獨(dú)分層封裝恳守,沒(méi)經(jīng)驗(yàn)的同學(xué)就可想而知了考婴,表面上看是一個(gè)小問(wèn)題,但長(zhǎng)久積累勢(shì)必引發(fā)重構(gòu)的工作催烘,甚至要撤了重寫(xiě)的后果沥阱。