Android 四大组件 与 MVC 架构模式
? ? ??作為一個(gè)剛從JAVA轉(zhuǎn)過(guò)來(lái)的Android程序員總會(huì)思考android MVC是什么樣的?
首先,我們必須得說(shuō)Android追尋著MVC架構(gòu),那就得先說(shuō)一下MVC是個(gè)啥東西!
????? 總體而來(lái)說(shuō)MVC不能說(shuō)是一個(gè)設(shè)計(jì)模式,因?yàn)閯澐志S度太大,所以MVC應(yīng)該屬于架構(gòu)模式!
百度百科 ——?MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法組織代碼,將業(yè)務(wù)邏輯被聚集到一個(gè)部件里面,在界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制的同時(shí)而不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。
???? 模型層、視圖層、控制層各司其職責(zé),相互獨(dú)立,一個(gè)模型可以有多個(gè)視圖,一個(gè)視圖可以有多個(gè)控制器,同樣如此,一個(gè)控制器也可以有多個(gè)模型。
MVC 基本處理流程如下:
用戶與視圖交互,視圖接愛(ài)并反饋用戶的動(dòng)作;視圖把用戶的請(qǐng)求傳給相應(yīng)的控制器,由控制器決定調(diào)用哪個(gè)模型,然后由模型調(diào)用相應(yīng)的業(yè)務(wù)邏輯對(duì)用戶請(qǐng)求進(jìn)行加工處理,如果需要返回?cái)?shù)據(jù),模型會(huì)把相應(yīng)的數(shù)據(jù)返回給控制器,由控制器調(diào)用相應(yīng)的視圖,最終由視圖格式化和渲染返回的數(shù)據(jù),對(duì)于返回的數(shù)據(jù)完全可以增加用戶體驗(yàn)效果展現(xiàn)給用戶。
?? Andorid針對(duì)MVC實(shí)現(xiàn)得意于提出了四大核心組件,具體的詳細(xì)先不討論,今天主要想簡(jiǎn)要說(shuō)一下本人對(duì)四大組件的一些感性認(rèn)識(shí):
?? Activity: 處理與UI相關(guān)的事件,呈現(xiàn)界面給用戶并響應(yīng)用戶的請(qǐng)求?(?打開一個(gè)應(yīng)用,展現(xiàn)在你眼前的全是Activity。Activity是一個(gè)容器,她可以其承載它控件!);
?? Service: 后臺(tái)服務(wù),一般用于耗時(shí)操作,在后臺(tái)和長(zhǎng)時(shí)間運(yùn)行(人前風(fēng)平浪靜,人后馬不停蹄!Service是幕后工作者,雖然你看不到他干事的過(guò)程,但你能看到最終的結(jié)果。Service雖是幕后工作,但不是不要工錢,系統(tǒng)開銷一點(diǎn)也不少);
BoadcastReceiver: 接收廣播事件并對(duì)事伯點(diǎn)擊進(jìn)行處理,如當(dāng)收到短信時(shí)系統(tǒng)會(huì)發(fā)現(xiàn)短信到來(lái)的廣播,能夠處理該廣播的BoadcastReceiver就會(huì)根據(jù)自己需要進(jìn)進(jìn)處理(廣播,這個(gè)道里大家都懂吧!);
??? ContentProvider: 存儲(chǔ)、處理數(shù)據(jù)并提供給外界一致的處理接口;
?
??? 我寫了一個(gè)關(guān)于Android四大組件的一個(gè)小故事和大家分享一下:
? 我去麥當(dāng)勞用餐,進(jìn)門前就能看到麥當(dāng)勞的logo和面店裝飾。
?????走進(jìn)店里,裝潢格局,桌椅餐具,服務(wù)員全都麥當(dāng)勞風(fēng)格。包括前臺(tái)點(diǎn)餐都和交流用語(yǔ)都是一模一樣,標(biāo)準(zhǔn)的麥當(dāng)勞模式。(現(xiàn)在我眼前的一切就是 Activity)。
????? 點(diǎn)餐后,我駐足等待。但這時(shí)我拿起最新的宣傳廣告看來(lái)起來(lái),期間又接了一個(gè)工作電話。過(guò)了一會(huì),我點(diǎn)的東西好了。端到自己的坐位上,我拿起發(fā)了一條微博和一條朋友圈,完全不關(guān)心忙碌的后廚和食物的制做過(guò)程(這就是Service)
????? 一會(huì)店里的廣播通知顧客去前臺(tái)取已經(jīng)做好的漢堡包和薯?xiàng)l,這時(shí)我身邊的一位老兄起身去了前臺(tái)。(這就是BoadcastReceiver)
????? 就餐完畢,出門時(shí)我把點(diǎn)餐時(shí)打印的收據(jù)隨手扔進(jìn)了門口的垃圾箱(那收據(jù)就是ContentProvider)!
- 本文固定鏈接:?http://www.ttsofts.com/archives/198
- 轉(zhuǎn)載請(qǐng)注明:?ttsofts?2015年11月15日?于?代碼博客?發(fā)表
?
轉(zhuǎn)載于:https://www.cnblogs.com/ttsofts/p/4865931.html
總結(jié)
以上是生活随笔為你收集整理的Android 四大组件 与 MVC 架构模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SVN 服务器端的搭建-及多仓库管理-O
- 下一篇: tomcat使用遇到的问题汇总