模型 - 視圖 - 演示者(MVP)是GUI應用程序中衆所周知的設計模式。對於Android來說,在普通的Java模塊中實現業務邏輯有助於在不需要Android模擬器的情況下進行測試。因爲特殊要求的Android應用程序的GUI實現Android上的圖案在Android中實現模型 - 視圖 - 演示者的困難
不過,我有困難:
的活動可以在任何時候(來電被破壞,用戶按下home鍵, ...),並且在重新創建時應該與它離開時的狀態完全相同。這與大多數其他GUI應用程序不同。
活動可以經歷許多生命週期狀態。在這種情況下,活動的UI不應該被修改。例如,如果某些數據在後臺加載,如果它處於暫停狀態,則無法將其傳遞到MVP(活動)的View部分。再次,這是一個不尋常的要求。
我已閱讀博文MVP for Android並查看了example source code。我試圖通過使用MVP模式實現的最終目標是能夠使用轉譯程序j2objc將所有業務邏輯轉換爲Objective-C,以便在iOS上實現相同的應用程序時可以重用業務邏輯。
有沒有人成功實現了Android的MVP模式,在這種情況下,我錯過了什麼?
我在想什麼:如果你的業務邏輯模塊是普通的java而不需要'Context',爲什麼你的'Activity'生命週期很重要?換句話說,爲什麼這些特殊的GUI需求是一個問題? – Blacklight
如果MVP的'View'部分可能在某些時候沒有更新(當它暫停時),那麼'Presenter'還是'Model'不知道?而且'Model'不應該被創建,以便它可以在稍後恢復? – foens
有人可能會爭辯說,活動負責管理生命週期並根據需要設置/暫停/拆除演示者。主持人對你的系統依賴UI框架的怪癖並不聰明。 – dcow