假如我們的activity a和b都對資料data感興趣,會根據資料data的改變進行gui的修改,一般很多同學的做法就是在activity中都寫乙個執行緒或者用封裝的框架 asynctask,volley去獲取網路資料d,對獲取到的資料進行解析,得到activity a和b想要的資料data,然後根據data對activity進行gui的修改,設想一下這樣做的缺點有哪些。
第一:在activity a和b中都需要寫乙份同樣的獲取網路資料的**和解析資料的**。
第二:假如要修改業務邏輯,需要找到所有的地方一一進行修改。
第三:v和c的耦合性太高。
有些同學可能會對獲取網路資料和解析資料的方法進行一些二次封裝,然後在activity中呼叫的時候只需要簡短的幾句**,這樣比起之前雖然高明了,但還不是真正的mvc模式的初衷。mvc模式想要做的是讓我們把使用者圖形介面gui和業務邏輯進行分離,讓gui不必關心業務邏輯的實現,只需要關心它想要的資料就可以了,想要做到這一點,就必須進行業務抽離。
業務抽離的核心就是讓gui只去關心自己想要的資料,不必要關閉業務邏輯,所以我們首先要在v和c之間新增乙個v關心的資料模型,我們知道業務層c就是乙個資料的加工廠,它會將從網路獲取到的資料加工成展示層v想要的資料模型,如此一來v和c的就進行了分離。
業務分離之後,業務邏輯的**就不在activity中了,那麼activity中的控制項如何知道自己感興趣的資料是否發生改變呢,這個是業務分離的關鍵點,如果能解決好這個問題,那麼業務分離也就成功了。也就是說當我們的業務層在接收到網路資料後,要如何通知到v我們的資料data發生了變化。我們可以用觀察者模式來解決這個問題,不了解觀察者模式的同學可以挫這裡(通過observer(觀察者模式)來看android的mvc ),讓v作為乙個觀察者,實現changelistener介面,讓新增的資料模型mymoudle作為乙個被觀察者,裡面持有觀察者的例項,當資料模型中的value產生變化的時候就通知v改變對應的gui,根據策略來showline或者showcircle。
MVC架構中的模式
mvc的起源自mvc起源於上個世界七十年代後期,trygve reenskaug開發並將之作為 alltalk平台的框架,具體就不細說了.以mvc為架構的系統包含了很多的設計模式,但是與mvc最為密切相關的有兩種模式 observer和 posite,如果業務邏輯不常變化,那麼可以不採用strate...
WinForm中的MVC模式 MVP模式
using system using system.collections.generic using system.linq using system.text using system.componentmodel namespace set private string name public...
業務知識 保險中的抽檔什麼意思
在新契約 保險保單 投保時出現較多,抽檔一般指的是投保單的調取,並做要求對應被保險人體檢。才給予承保。保險體檢專案中的一般專案 第一步,大家需要檢查血壓 身高以及體重,這主要是為了能夠檢查被保險人是否有血壓異常 體重不足或肥胖的情況。第二步,需要檢查的是脈搏 發育及營養狀況 神經及精神 心肺聽診以及...