單例模式 餓漢模式 懶漢模式

2021-09-27 08:30:49 字數 1348 閱讀 9011

構造方法私有化

靜態屬性指向例項

public static的 getinstance方法,返回第二步的靜態屬性、

餓漢式是立即載入的方式,無論是否會用到這個物件,都會載入。

如果在構造方法裡寫了效能消耗較大,佔時較久的**,比如建立與資料庫的連線,那麼就會在啟動的時候感覺稍微有些卡頓。

懶漢式,是延遲載入的方式,只有使用的時候才會載入。 並且有執行緒安全的考量(鑑於同學們學習的進度,暫時不對執行緒的章節做展開)。

使用懶漢式,在啟動的時候,會感覺到比餓漢式略快,因為並沒有做物件的例項化。 但是在第一次呼叫的時候,會進行例項化操作,感覺上就略慢。

看業務需求,如果業務上允許有比較充分的啟動和初始化時間,就使用餓漢式,否則就使用懶漢式

使用餓漢式單例模式, 把hero類改造成為單例模式

使用懶漢式單例模式,把item類改造成為單例模式

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

4041

4243

4445

4647

4849

5051

5253

5455

5657

class

item//使用餓漢式單例模式, 把hero類改造成為單例模式

//使用懶漢式單例模式,把item類改造成為單例模式

;public

static item b;

public

static item getb

()return b;

}string name;

float price;

}class

hero

//私有化建構函式,使外部無法例項化物件

public

static hero a= new hero();//準備乙個類屬性,指向乙個例項化物件。 因為是類屬性,所以只有乙個

string name;

float hp;

float armor;

int movespeed;

void

output

()public

static hero geta()}

public

class

day0922a

}結果都為為true

單例模式(餓漢模式 懶漢模式)

餓漢單例模式 通過單例模式可以保證系統中,應用該模式的類乙個類只有乙個例項 即乙個類只有乙個物件例項 並提供乙個訪問它的全域性訪問點,該例項被所有程式模組共享。設計模式 一書中給出了一種很不錯的實現,定義乙個單例類,使用類的私有靜態指標變數指向類的唯一例項,並用乙個公有的靜態方法獲取該例項。分點表述...

懶漢餓漢單例模式

懶漢式單例類,在第一次呼叫時的時候例項化自己 public class singleton private static singleton single null 靜態工廠方法 public static singleton getinstance return single 執行緒安全的懶漢式單...

單例模式 懶漢,餓漢

1.懶漢模式 顧名思義,他是乙個懶漢,他不願意動彈。什麼時候需要吃飯了,他就什麼時候開始想辦法搞點食物。即懶漢式一開始不會例項化,什麼時候用就什麼時候new,才進行例項化。2.餓漢模式 顧名思義,他是乙個餓漢,他很勤快就怕自己餓著。他總是先把食物準備好,什麼時候需要吃了,他隨時拿來吃,不需要臨時去搞...