2017-09-18 33 views
1

我剛剛讀了the Guide to App Architecture。在此谷歌演示了使用新的Android體系結構組件構建健壯的android應用程序的基本指導。如圖所示this year's Google I/O一個應用程序應具有4層:如何尊重Android Clean Architecture

enter image description here

當依賴關係從頂部流至底部具有更高的層僅具有直接在它們下面,例如組件的知識。 UI控制器只知道視圖模型視圖模型只知道

所以我觀看的影片,完成了相應的codelabs,然後我研究的指導和具有粗糙的理解,我開始後來編寫本指南中討論的用例。

本指南的目標是實現一個應用程序,該應用程序僅從後端獲取用戶對象並將其顯示給用戶,所有這些都與清潔架構有關。

我開始編寫這個用例後就出現了我的問題。整個應用程序取決於這個用戶 Pojo。 Repository從後端獲取它,然後使用並在LiveData的幫助下,通知ViewModel和UI,它將其保留在DataSource中。所以**在哪一層應該定義我的數據模型 - 在這個用例中用戶角色是**。或者每個圖層應該有一個User Pojo,它將從來自較低層的用戶Pojo映射出來?

回答

0

我會添加一個「圖層」的圖片:模型或域名,如果你願意。 當談到房間時,模型是一組簡單的POJO對象。模型圖層與其他圖層沒有關係,但它可以是圖片中所有其他圖層的引用。

0

您可以擁有一些實體類(POJO),它們表示數據在縮小範圍(數據源層)中的獲取方式。 實際上代表您的業務模型的域類應該基於實體類。理想情況下,他們應該通過存儲庫(數據庫的入口點)進行公開,這需要處理來自您可能擁有的衆多數據源的響應,並將其轉化爲外部世界瞭解的模型。 通過這種方式,您不會依賴於您的數據源可能會隨時間而遭受的許多更改,並且您的域保持一致。