天天看點

android 單例設計模式,Android設計模式(1)----單例模式

在非常多設計模式中。我相信大多數程式員最早接觸的設計模式就是單例模式啦,當然了我也不例外。

單例模式應用起來應該是全部設計模式中最簡單的。單例模式盡管簡單,可是假設你去深深探究單例模式,會涉及到非常多非常多知識。我會繼續更新這篇文章的。單例模式在整個系統中就提供了一個對象,然後整個系統都去使用這一個對象,這就是單例的目的。

一、飽漢式單例:

public class Singleton {

private static Singleton instance = null;

public static Singleton getInstance() {

if (instance == null) {

instance = new Singleton();

}

return instance;

}

}

二、餓漢式單例:

public class Singleton {

private static Singleton instance = new Singleton();

public static Singleton getInstance() {

return instance;

}

}

這兩種單例在實際的代碼中,往往是不能滿足要求的。這就須要我們依據自己的需求來改寫這些單例模式,

比如:假設建立的單例對象須要其它參數。這個時候,我們就須要這樣改寫:

public class Singleton {

private static Singleton instance = null;

public static Singleton getInstance(Context context) {

if (instance == null) {

instance = new Singleton(context);

}

return instance;

}

}

比如:資源共享情況下。必須滿足多線程的并發訪問。這個時候,我們就應該這麼做:

public class Singleton {

private static Singleton instance = null;

public synchronized static Singleton getInstance() {

if (instance == null) {

instance = new Singleton();

}

return instance;

}

}

事實上不管什麼條件下,不管怎麼改變。都是這兩種單例模式的變種!

!!。