2012-01-09 84 views
0

各位朋友,您好:女士們,先生們,正確執行MVC for Android

誰知道關於iOS編程和數據源/委託範例會理解我。

爲iOS中實現自定義視圖中的最佳實踐:

  1. 實現從UIView
  2. MyView繼承MyView類有dataSource場。
  3. drawRect:方法MyView詢問dataSource的項目繪製。
  4. dataSource對象符合所需的協議並實現所需的方法。

這是非常相似的如何實施UITableView,但我現在不談論細胞。

您能否讓我知道在Android中使用MVC模式實現自定義視圖(如MyView)的最佳做法?

謝謝,Droid。

+0

請嘗試更具體一點,改變標題,否則它可能會作爲我提供的鏈接中的問題的副本關閉。 – zode64 2012-01-09 17:28:39

+0

請從這裏開始查看我的博客文章[Android Architecture:MV?](http://doridori.github.io/Android-Architecture-MV%3F/) – Dori 2015-04-03 17:33:43

回答

4

MVC pattern on Android

閱讀所有的答案讓機器人圖案的圓形視圖,我不覺得第一個非常有幫助。

有關防止純MVC實施的基本應用程序組件的設計決策,例如使用不允許將層解耦的活動。

我發現以MVC方式查看android應用程序混淆了事情,因爲您最終濫用組件如活動和適配器,嘗試調整它們以執行它們並未真正設計的功能。

UPDATE

你需要做的問題更具體一點得到一個很好的答案,提供您需要什麼樣的查看詳情(列表,網格,簡單)和什麼樣的型號你使用(他們在哪裏堅持等)。

雖然這是相當主觀的,我發現以下與Android編程時:

模型往往最終被不可避免地啞(對anemic anti-pattern)。這可能是因爲在很多情況下,您會發現適配器傳遞的內容以對象或集合的形式呈現在視圖中,然後應該通過適配器執行對這些對象或集合的操作,以便適配器知道它們何時被改變並且可以相應地管理視圖。

適配器可以視爲模型和視圖之間的鏈接,如果您喜歡,但沒有純MVC控制器的許多優點,則爲控制器。我發現自定義適配器可能很有效(儘管如果您從MVC的角度來看,最終會得到'fat controllers')。然後可以通過適配器方法調用任何將調用對內容的更改的UI輸入,這些方法將使用列表的添加/刪除或數據庫的遊標操作來編輯模型。

+0

感謝您的回覆並提供了鏈接。我仍然很高興知道在Android中實現自定義視圖的最佳方式是什麼。我應該如何給我的自定義視圖創建一個模型? (通過列表適配器?)什麼是最好的解決方案:模型在視圖中繪製自己或從模型中獲取一些屬性並繪製它? – Droid 2012-01-09 16:20:27

0

要在Android中實現自定義視圖,您應該從現有視圖派生,然後覆蓋您需要的方法,其中通常包括onDraw(),onMeasure()以及可能的一個或多個事件處理程序1

要以MVC的精神實現某些東西,組件所代表的數據不應該存在於視圖類本身中,而應該放在其他類中。確切的設計由您決定:您可以將數據存儲在文件中,以Java對象的形式從內容提供程序2等中取出。

繪圖時(覆蓋onDraw()),您應該查看您的數據並相應提取;

當處理更改數據的事件時,請更改模型中的數據並在視圖上調用invalidate()以請求重繪以反映更改。