構造方法私有化
靜態屬性指向例項
public static的 getinstance方法,返回第二步的靜態屬性、
餓漢式是立即載入的方式,無論是否會用到這個物件,都會載入。
如果在構造方法裡寫了效能消耗較大,佔時較久的**,比如建立與資料庫的連線,那麼就會在啟動的時候感覺稍微有些卡頓。
懶漢式,是延遲載入的方式,只有使用的時候才會載入。 並且有執行緒安全的考量(鑑於同學們學習的進度,暫時不對執行緒的章節做展開)。
使用懶漢式,在啟動的時候,會感覺到比餓漢式略快,因為並沒有做物件的例項化。 但是在第一次呼叫的時候,會進行例項化操作,感覺上就略慢。
看業務需求,如果業務上允許有比較充分的啟動和初始化時間,就使用餓漢式,否則就使用懶漢式
使用餓漢式單例模式, 把hero類改造成為單例模式
使用懶漢式單例模式,把item類改造成為單例模式
1234567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
4041
4243
4445
4647
4849
5051
5253
5455
5657
classitem//使用餓漢式單例模式, 把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.餓漢模式 顧名思義,他是乙個餓漢,他很勤快就怕自己餓著。他總是先把食物準備好,什麼時候需要吃了,他隨時拿來吃,不需要臨時去搞...