先上代碼:
1 package com.test.singleton;
2
3 /**
4 * @author mr.cheng
5 *
6 */
7 public class Singleton {
8 //運(yùn)用private私有化構(gòu)造器,其他類不能通過new獲取本對象
9 private Singleton() {
10 }
11 //運(yùn)用私有靜態(tài)instance保存本對象,必須是靜態(tài)變量,因為會在getInstance方法中運(yùn)用
12 private static Singleton instance;
13 //靜態(tài)方法是因為不能通過new來獲取對象,只能通過這個靜態(tài)方法來獲取對象實(shí)例
14 static synchronized Singleton getInstance(){
15 //先判斷保存實(shí)例的變量instance是否為空,為空則新建實(shí)例,并保存到instance中
16 if(instance == null){
17 //Singleton只有一個構(gòu)造器,并聲明為private,因此只能在內(nèi)部調(diào)用new 獲取實(shí)例
18 instance = new Singleton();
19 return instance;
20 } else{
21 return instance;
22 }
23 }
24 }
25
單列模式主要運(yùn)用場景:實(shí)例化時耗用的資源比較大,或者對象實(shí)例比較頻繁,以及要保證在整個程序中,只有一個實(shí)例。
例如數(shù)據(jù)源配置,系統(tǒng)參數(shù)配置等。
每當(dāng)自己想休息,想停步的時候,就想想那些賤人,不想與賤人一起,就要努力離開這里。
追求卓越,永不停步。
求學(xué)首需心靜,博學(xué)源于積累。
不要變成一個只說不做的人。
領(lǐng)導(dǎo)就是叫你加班,自己卻不回來的賤人。