我已經開始使用Android Big Nerd Ranch指南學習android。 清單9.1建立單(CrimeLab.java)Singleton和Context
public class CrimeLab {
private static CrimeLab sCrimeLab;
private Context mAppContext;
private CrimeLab(Context appContext) {
mAppContext = appContext;
}
public static CrimeLab get(Context c) {
if (sCrimeLab == null) {
sCrimeLab = new CrimeLab(c.getApplicationContext());
}
return sCrimeLab;
}
}
項目 - 我們正在創造犯罪對象的名單,我們使用這個類來存儲列表。
我很難理解代碼9.1中提供的Singleton類的需求。爲什麼我們首先需要這門課?爲什麼需要一個上下文變量,它有什麼作用?
我搜索谷歌,發現上下文用於通知應用程序的其他部分正在發生什麼。但是,我沒有完全知道我們通知CrimeLab的是什麼?我們可以創建沒有單身課程的犯罪實驗室嗎?如果是,爲什麼我們將crimeLab用作單身課程?
哦防止創建對象!我們需要上下文來告訴應用程序發生了什麼,以便所有數據都能很好地集中在一個地方。我對嗎?非常感謝你 –
不,我們只需要在這裏的上下文,如果我們*需要*其信息CrimeLab對象。否則,您可以刪除它,因爲它本身就是一個參數。數據在一個地方是因爲單例實現(一個靜態屬性): private static CrimeLab sCrimeLab; –