2013-04-14 25 views
0

我對於android來說相當陌生,在閱讀了一本書並接受了很多教程之後,我即將創建我的第一個「真實」應用程序。Android和調解者設計模式

我的問題相當簡單:中介設計模式在設計android應用程序時仍然是一個不錯的選擇嗎?

如果是,有什麼設計模式,你應該避免編程android應用程序?

如果沒有任何對介體模式的取代可用於獲取不同對象的實例集合嗎?

+0

你想如何使用mediator?你可能想要避免單身。 –

+0

@MaciejGórski例如我有一個用戶對象,我的所有活動都需要知道。爲什麼會想要避免單身? –

回答

2

我建議創建一個模型類(我們稱之爲MyModel)並在Application.onCreate(而不是Activity.onCreate)中創建此類的對象。

爲,加入吸氣後,讓你可以從任何ActivityService這樣這種模式:

MyApplication app = (MyApplication) getApplication(); 
MyModel model = app.getMyModel(); 
User user = model.getCurrentUser(); 

也造成BaseActivity類可以節省如果你創建方法,你打字有protected MyModel getModel(),它從上面的代碼的前兩行返回模型。

編輯:

你需要創建一個擴展Application類,並在AndroidManifest.xml註冊這個類。

這是怎麼了:https://stackoverflow.com/a/2929927/2183804

編輯(約單):

它被認爲是一個反模式(不僅在Android)。在Android中,我看到有人用帶有訪問器的單例例如MySingleton.getInstance(Context)結束,因爲無論如何它們都需要Context。用於SharedPrefs或數據庫訪問。這是應用程序的用途,因此不需要創建額外的黑客實體,這可能會以錯誤的方式使用:MySingleton.getInstance(null)來自沒有上下文的地方。這可能導致NPE在處理過程中死亡並重新啓動後。

+0

如何在Application.onCreate()上創建它?我在哪裏找到這個。而不是你建議單身人士? –

+0

應用程序是另一個組件。只存在一個實例,但它不是一個單例(沒有靜態存取器)。看我的編輯。 –

+0

謝謝或者你的回答非常有幫助你可以向我解釋爲什麼你想避免單身? –