看下面的一個單例類:
public class AppCache {
private AppCache() {
}
private static class SingletonHolder {
private static AppCache sAppCache = new AppCache();
}
private static AppCache getInstance() {
return SingletonHolder.sAppCache;
}
public static void init(Application application) {
getInstance().onInit(application);
}
private void onInit(Application application) {
mContext = application.getApplicationContext();
ToastUtils.init(mContext);
Preferences.init(mContext);
ScreenUtils.init(mContext);
CrashHandler.getInstance().init();
CoverLoader.getInstance().init(mContext);
application.registerActivityLifecycleCallbacks(new ActivityLifecycle());
}
}
初看這段代碼init方法里面悍汛,有調(diào)用getInstance().onInit(application);我感覺有點多此一舉,并在群里和朋友討論一番之后藐唠,我發(fā)現(xiàn)并非多此一舉,如果這個單例我們是寫給別人調(diào)用,這么寫的好處就是令花,如果我們要改下getInstance().onInit的方法名