2016-04-03 104 views
0

這是我第一個真正的android應用程序,我想用好的設計模式開始它,因爲它會有點大,所以我可以輕鬆管理我的代碼。 我可以在Android中將用戶三層體系結構和「MVC」結合在一起嗎? 我在「.net」中使用它,它是如此之好的選擇,但我不知道我是否可以在android中使用它。我可以在Android中一起使用3層體系結構和「MVC」嗎?

我檢查this question,但我仍然困惑,我無法實現MVC和MVP之間的區別,並根據與MVC或MVP使用n層到GETHER

+1

可能的[Android應用程序體系結構 - 建議的模型是什麼?]的重複(http://stackoverflow.com/questions/3320534/android-application-architecture-what-is-the-suggested-model) – Pooya

+0

我讀過它現在但我仍然困惑,我無法意識到MVC和MVP之間的區別,並且我沒有發現任何評論根據使用n層與MVC或MVP一起 –

+0

@ cricket_007 [this](http:// stackoverflow.com/questions/10739914/what-is-the-difference-between-3-tier-architecture-and-a-mvc)解釋了MVC和3層之間的區別 –

回答

1

有我沒有找到任何評論很多指南指出人們展示可用建築或者崇拜一種建築作爲THE STANDARD,寫出關於適用於現代問題的舊方法的整本書籍。與此不同的是,這只是一個粗略的回答:

Android鼓勵您爲Activities/Fragments使用MVC或MVC Variant(MVP/MVVM/...)。 您可以在整個應用程序上應用3層架構。

表示層

的MVC或變體被施加到表示層。您的演示者/控制器處理您的視圖,通貨膨脹和修改,ui控件綁定(如onclick事件),也許某些效果與此視圖單獨綁定等等。

業務層

這是你的業務邏輯。您的工作流程,流程,規則,...

數據層

和數據處理放在這裏。

的其他

這是一個良好的開端讓事情在這3層,既維護和測試。這是我的應用程序的基本基本概述,無論是在Android或iOS上,但我並不總是將所有內容都壓入這3層。例如用於掃描藍牙設備的組件,在後臺(或其他後臺服務和任務)中進行下載,或者使用全套控件添加相機預覽。我將這些分開存放以便重複使用,而沒有寫入和導入圖書館的麻煩。

0

要回答這個問題,是的。根據MVC(或MVP)的定義,有三層(不是線性的,但是在三角形中)。

  1. 演示(查看)
  2. 邏輯層(控制器/演示者)
  3. 數據層(模型)

沒有什麼阻止Android中真正的n層體系結構。例如,您可以使用XML文件或SQLite作爲持久性數據層,然後SqliteOpenHelper類作爲下一層來讀取&寫入數據,而這些數據又將被傳遞到Adapter並顯示在一些ListView中。

離開本地文件系統,您使用網絡請求與某些與其數據存儲層通信的遠程API層進行通信。

+0

3層架構是不同的。它可能包含其中一層(表示層)的MVC,我一開始也感到困惑,但在實際操作後,我完全意識到了這些差異。[這是我的問題](http://stackoverflow.com/questions/33321967/converting -mvc-ef-to-3-tier-architecture-model/36352374#36352374)在開始時一起使用3層和MVC,但是作爲「.Net」,我解釋了我在這個問題中如何混合它們。 –

0

您可以認爲MVC中的模型和視圖分別對應於中間層(業務邏輯)和三層展示(如果您更喜歡3層)。

假設您的MVC模型包含數據層,那麼模型將對應於中間層和數據訪問層。我將稱這個Model1。

如果您在此Model1(中間和數據訪問層)和View(Presentation)之間引入控制器,那麼您將擁有MVC/3層架構。

但是,如果您禁止View更新Model1,那麼您將擁有一個3層/ MVC體系結構,即視圖無法直接更新模型的體系結構(如3層中所示),以及這個原因我把三層的名字放在前面。

相關問題