設計模式 餓漢式 懶漢式

2021-07-10 21:13:05 字數 1336 閱讀 9616

單例設計模式:確保乙個類中有且僅有乙個例項並為他提供乙個全域性訪問點。

具體實現:

1.將建構函式私有化。

2.在類中建立乙個本類物件。

3.提供乙個方法可以獲取到該物件。

2.1餓漢式:single類一進記憶體,就已經建立好了物件。

class single

private

static single s = new single();

public

static single getinstance()

}

2.2懶漢式:會被延遲載入,物件是方法被呼叫時,才初始化。
class singledemo   

public

static

synchronized singledemo getinstance()

return s;

} }

3.餓漢式單例

class singletondemo

}class student

public

static student getstudent()

public

void

setage(int age)

public

intgetage()

}

4.懶漢式單例

懶漢式在單執行緒下懶漢式與餓漢式沒有區別。但在多執行緒環境下,餓漢式沒有問題,

懶漢式可能會產生多個例項。因此要使用執行緒同步(synchronized),保證在多執行緒環境下,不建立多個例項。

懶漢式 單執行緒

class demo  

}class singledemo

public

static singledemo getinstance()

return s;

} }

懶漢式 多執行緒

class

singletondemo2

}class

rundemo

extends

thread

}class

singledemo

public

static synchronized singledemo getinstance()

return s;

} }

懶漢式的目的是為了提高效能,synchronized卻降低了效能.(開發過程盡量使用餓漢式)

設計模式 單例模式 餓漢式,懶漢式

餓漢式 將物件的實現提前準備好,物件指向的記憶體只能有乙個。public class singlection1 餓漢式單例實現 將物件的實現提前準備好 private static final singlection1 single1 new singlection1 靜態工廠 public sta...

餓漢式懶漢式

這個是先初始化物件。稱為 餓漢式。single類一進記憶體,就已經建立好了物件。class single 私有化構造方法使得該類無法在外部通過new 進行例項化 public static single getinstance 物件是方法被呼叫時,才初始化,也叫做物件的延時載入。成為 懶漢式。sin...

單例設計模式 懶漢式與餓漢式

1 概念 在某些場合中,乙個類對外提供乙個且只提供乙個物件時,這樣的類的類叫做單例類。編寫單例類的模式叫做單例設計模式,是程式設計的總結。2 思路 在程式中,如果其它的類需要用到這個類的物件,都是通過new的方式建立類物件,這時就根本無法控制其他類new物件的個數,那麼如何保證保證只有乙個new物件...