一、懶漢式:
也稱單例模式,是一種需要的時候才創建對象的設計模式,優點是延遲加載,缺點是應用同步。如果在創建實例不加上Synchronized的話則會導致對象的訪問不是線程安全的,換句話說就是在使用多線程訪問單例模式的時候,(引申)是需要加同步函數,同步鎖對象爲當前類的類名.class 參考如下代碼;
class Singin{
private static Singin singin = null;
public static synchronized Singin getInstance(){
if(singin == null){
singin = new Singin();
}
return singin;
}
}
二、餓漢式:
線程安全模式,因爲其在創建的同時就創建好一個靜態的對象對象供系統使用,以後不再改變。餓漢有三個要素;
1、私有的構造方法。 2、指向自己實例的私有靜態引用。 3、以自己實例爲返回值的靜態公有方法。
class Singin{
private static Singin singin = new Singin();
private Singin(){
}
public Singin getInstance(){
return singin;
}
}