關於Android MVC結構

2021-08-26 18:59:16 字數 1875 閱讀 9394

在android應用程式中,我們不能夠非常清楚地區分mvc結構中的檢視部分和控制器部分。android框架期望開發者們將activity基礎類作為ui處理,這也就意味著乙個activity需要負責檢視與控制器兩個部分的任務。

利用觀察者模式將model進行繫結處理。

android近期學習總結——開發筆記 寫道

android採用了典型的mvc結構。其表現如下:

view既可以通過xml(layout目錄下)生成,也可以通過硬編碼的方式直接通過**生成。對於xml中的view資源,可以在**中通過getviewbyid()的方法獲得。

model既可以通過xml(values目錄下)生成,也可以硬編碼的方式直接在**中指定。view和model通過adapter來進行連線。典型的adapter包括arrayadapter(可以sort()操作)、cusoradapter(從cusor中查詢到資料來源),listadapter、******adapter(最常用)、spinneradapter(它是乙個介面,設定spinner應用 ******adapter的setdropdownresource方法)。

談對android開發的認識 寫道

android應用開發一般來說由四大塊構成 activity, intent, provider, broadcastreciver.

從這種結構上來看,android系統是提供了從顯示層到資料層到訊息機制的一整套的應用開發方案,而且是一種比較先進的解決方案。

從寫android**的過程中,android專案整體是一種典型的mvc結構,非常類似於主要用於web開發的j2ee架構。

在看了上述討論後,我受益匪淺。按照以前開發ror的經驗,總覺得如果僅僅將xml布局看作view層未免太單薄,而且負責渲染與事件繫結的工作也全部落到了activity的頭上,這看上去不太合理。不過另一方面說,這看上去不合理的原因是自己見識的太少以及教條主義的影響。

那麼究竟該如何劃分這幾層結構呢?我覺得可以換個思路出發,我們究竟該如何合理地組織乙個android應用程式呢?我們不必教條地、具有成見地將原先系統劃分結構帶入到這樣乙個新的框架結構中,而是需要在這個特定結構中發揮其框架的效果:

xml布局負責將介面布局做好,並且盡量做到合理分割與減少層次

activity做好控制項事件繫結與業務流程控制

intent做好activity間的session傳遞管理

自己建立model(可以通過observer模式進行繫結處理、並且包裝好各種provider)將處理資料的工作做好。不建議簡單地將各個資料字段散亂地存放在activity周圍,而是借助資料bean的思路存放在model下面,這樣在model資料項變得龐大後難於管理與重構,而且這多為非面對物件的設計方案。

adapter是資料與呈現的粘合劑

以上是個人在做了個android的乙個小應用後的反思與看法,整體上層次是非常低的。在這次開發中,我看到了自己在做客戶端軟體方面的一些問題,先分享與大家,希望能夠共勉:

上手新框架時,成見較多,借助以前的思路機械搭建應用。這樣沒有合理發揮android框架的優勢,做了很多無用功。

整個知識網路的整合上面有欠缺,在做ror時能夠良好地利用bean做資料傳遞與統一化工作。而在客戶端程式時,將資料字段散亂的放在了 activity中。產生這個問題一方面**於自己的懶惰,因為剛剛開始處理時字段就乙個,所以就直接放上去了;到後來資料項激增,但是思路卻沒有變化。

observer模式是個不錯的方案,在應用開發中卻沒有應用。我覺得這也是在做ror時的一些問題,和asp.net不同(事件驅動,容易考慮到觀察者模式),ror多為url傳遞後行為觸發,各種行為被自然放在了control中。而在android應用中,錯誤地將activity簡單地當作了control,將業務控制邏輯放在了裡面最後忘卻了觀察者模式。

測試->開發->重構,的模式可以進一步上公升乙個層次,對整個流程再重構,這樣不至於陷入思維陷阱。

android MVC 框架的詳解

mvc model view controller m是指邏輯模型,v是指檢視模型,c則是控制器。乙個邏輯模型m可以對於多種檢視模型v,比如一批統計資料你可以分別用柱狀圖 餅圖v來表示。一種檢視模型v也可以對於多種邏輯模型m。使用mvc的目的是將m和v的實現 分離,從而使同乙個程式可以使用不同的表現...

Android MVC模式與MVP模式

概述 mvp模式是什麼?mvp 是從經典的模式mvc演變而來,它們的基本思想有相通的地方 controller presenter負責邏輯的處理,model提供資料,view負責顯示。mvc和mvp的區別?為什麼會出現mvp模式呢?這是因為原有的mvc模式有一些短板。比如在android開發中,ac...

關於檔案結構

根目錄,所有的目錄 檔案 裝置都在 之下,就是linux檔案系統的組織者,也是最上級的領導者。bin bin 就是二進位制 binary 英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄。boot linux的核心及引導系統程式所需要的檔案目錄,...