Android中界面部分也采用了當(dāng)前比較流行的MVC框架,在Android中:
1) 視圖層(View):一般采用XML文件進(jìn)行界面的描述,使用的時(shí)候可以非常方便的引入。當(dāng)然,如何你對(duì)Android了解的比較的多了話,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作為View層,當(dāng)然這里需要進(jìn)行Java和JavaScript之間的通信,幸運(yùn)的是,Android提供了它們之間非常方便的通信實(shí)現(xiàn)。
2) 控制層(Controller):Android的控制層的重任通常落在了眾多的Acitvity的肩上,這句話也就暗含了不要在Acitivity中寫(xiě)代碼,要通過(guò)Activity交割Model業(yè)務(wù)邏輯層處理,這樣做的另外一個(gè)原因是Android中的Acitivity的響應(yīng)時(shí)間是5s,如果耗時(shí)的操作放在這里,程序就很容易被回收掉。
3) 模型層(Model):對(duì)數(shù)據(jù)庫(kù)的操作、對(duì)網(wǎng)絡(luò)等的操作都應(yīng)該在Model里面處理,當(dāng)然對(duì)業(yè)務(wù)計(jì)算等操作也是必須放在的該層的。就是應(yīng)用程序中二進(jìn)制的數(shù)據(jù)。
在Android SDK中的數(shù)據(jù)綁定,也都是采用了與MVC框架類似的方法來(lái)顯示數(shù)據(jù)。在控制層上將數(shù)據(jù)按照視圖模型的要求(也就是Android SDK中的Adapter)封裝就可以直接在視圖模型上顯示了,從而實(shí)現(xiàn)了數(shù)據(jù)綁定。比如顯示Cursor中所有數(shù)據(jù)的ListActivity,其視圖層就是一個(gè)ListView,將數(shù)據(jù)封裝為L(zhǎng)istAdapter,并傳遞給ListView,數(shù)據(jù)就在ListView中現(xiàn)實(shí)。