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