0

引言這個Android Activity架構好嗎?

您好!正如你可能知道的,在Android「Activity」類中可能會變得很龐大,並且包含數千行代碼和數百種方法。也許可以在你用手完成時使用它,但是當你不得不向陌生的代碼添加新的功能時,它變得非常困難和耗時。

這打破了「單一責任」的原則,所以我開始研究一些架構,可以幫助您組織Android中的活動代碼。我已經閱讀了關於MVC,MVVM和其他體系結構模式,但它們對於Android活動結構看起來如此不同。

我的解決方案

我所做的只是一個分解大Activity類成許多獨立的「模塊」。每個模塊遵循「單一責任」原則,並且只包含與其目的相關的方法和領域。同樣,每個模塊都有參考活動,因此它能夠調用活動方法並訪問其他模塊;並且有必要的活動生命週期方法

在例如,你可以像模塊分裂活動:

  • 對話模塊 - 顯示任何對話框,烤麪包,小吃店用戶有關錯誤等
  • 事件處理模塊 - 拉手網和從外部
  • 驗證模塊來的其他事件 - 註銷(並轉到登錄活動),檢查證件,防止活動無需身份驗證即可數據工作
  • 列表模塊 - 一種帶有活性的RecyclerView工作,並在其上
  • 處理點擊
  • ...

後的模塊Activity類文件拆分只包含:生命週期方法,對所有模塊和模塊的生命週期方法的調用引用。因此,您將擁有5-10-20個具有100-200行代碼和3-5個字段的良好命名的類文件。您可以通過編寫新模塊來添加新功能,將其作爲字段添加到活動中並調用它的生命週期方法。

問題

它很自然地認爲Android中的我,但我需要知道,如果他們在其他的代碼面對它會說什麼其他的開發商。我已經發現了一個缺點 - 當你擴展這個「模塊活動」時,覆蓋功能並不重要,因爲它放在模塊中,你必須擴展和替換模塊而不是方法。

你能幫我找到關於這個建築的其他壞的或好的東西嗎?也許可以回答,爲什麼一些開發人員繼續編寫5000行代碼的活動:)

+1

不應該在Code Review上詢問這個問題嗎? – Sweeper

+0

@Sweeper哦,謝謝,我不知道這部分堆棧交換:) –

回答

-1

這一切都是關於中庸之道。您可以擁有出色的項目架構,但新開發人員會因爲代碼數量而刷新數據或顯示其他屏幕而感到困惑。你應該考慮你的項目有多大,有什麼變化的可能性,也許你將來需要切換到另一個設計/ API等。基本上閱讀有關mvc,mvp,mvpp模式,然後看看如何擴展他們在Android中使用交互器,數據存儲庫和其他東西。我建議你看看這個概念https://speakerdeck.com/richk/clean-android-architecturehttps://speakerdeck.com/rallat/android-development-like-a-pro。在第二個演示文稿中,查看他們的樣本應用程序https://github.com/rallat/EffectiveAndroid/tree/mvp,其中包含經典MVP和清潔架構分支。

+0

我不明白這是如何被接受的答案。這是一個意見。這不是全部關於中庸之道:再次,這是一個人的意見。然後再次,這個問題已經結束(主要是基於意見的)。 –