教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Java培訓(xùn)實(shí)戰(zhàn)教程之Java基礎(chǔ)知識(shí)精華部分(五)-設(shè)計(jì)模式

更新時(shí)間:2016年02月18日17時(shí)28分 來(lái)源:傳智播客Java培訓(xùn)學(xué)院 瀏覽次數(shù):

很多同學(xué)在java培訓(xùn)過后反應(yīng),說(shuō)并沒有吸收課堂內(nèi)的所有知識(shí),但是直到就業(yè)后,也只是吸收了課堂上71.2%的知識(shí),java培訓(xùn)學(xué)院特此讓專人編寫此篇文章,只為幫助更多的同學(xué)!

設(shè)計(jì)模式:解決問題最行之有效的思想。是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。
 
java中有23種設(shè)計(jì)模式:
單例設(shè)計(jì)模式:★★★★★
解決的問題:保證一個(gè)類在內(nèi)存中的對(duì)象唯一性。
比如:多程序讀取一個(gè)配置文件時(shí),建議配置文件封裝成對(duì)象。會(huì)方便操作其中數(shù)據(jù),又要保證多個(gè)程序讀到的是同一個(gè)配置文件對(duì)象,就需要該配置文件對(duì)象在內(nèi)存中是唯一的。
 
Runtime()方法就是單例設(shè)計(jì)模式進(jìn)行設(shè)計(jì)的。
 
如何保證對(duì)象唯一性呢?
思想:
1,不讓其他程序創(chuàng)建該類對(duì)象。
2,在本類中創(chuàng)建一個(gè)本類對(duì)象。
3,對(duì)外提供方法,讓其他程序獲取這個(gè)對(duì)象。
 
步驟:
1,因?yàn)閯?chuàng)建對(duì)象都需要構(gòu)造函數(shù)初始化,只要將本類中的構(gòu)造函數(shù)私有化,其他程序就無(wú)法再創(chuàng)建該類對(duì)象;
2,就在類中創(chuàng)建一個(gè)本類的對(duì)象;
3,定義一個(gè)方法,返回該對(duì)象,讓其他程序可以通過方法就得到本類對(duì)象。(作用:可控)
 
代碼體現(xiàn):
1,私有化構(gòu)造函數(shù);
2,創(chuàng)建私有并靜態(tài)的本類對(duì)象;
3,定義公有并靜態(tài)的方法,返回該對(duì)象。
---------------------------------------------
//餓漢式
class Single{
private Single(){} //私有化構(gòu)造函數(shù)。
private static Single s = new Single(); //創(chuàng)建私有并靜態(tài)的本類對(duì)象。
public static Single getInstance(){ //定義公有并靜態(tài)的方法,返回該對(duì)象。
return s;
}
}
---------------------------------------------
//懶漢式:延遲加載方式。
class Single2{
private Single2(){}
private static Single2 s = null;
public static Single2 getInstance(){
if(s==null)
s = new Single2();
return s;
}
}


本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://m.8y3kgpwe.cn/javaee 

推薦閱讀:

軟件測(cè)試培訓(xùn)

影視制作培訓(xùn)

區(qū)塊鏈培訓(xùn)


0 分享到:
和我們?cè)诰€交談!