您好,登錄后才能下訂單哦!
java 單例模式
單例模式是一種常用的軟件設(shè)計(jì)模式。在它的可信結(jié)構(gòu)中只包含一個(gè)被實(shí)例化單例的特殊類。通過(guò)單例設(shè)計(jì)模式可以把整系統(tǒng)中的一個(gè)類只有一個(gè)實(shí)例。
單例設(shè)計(jì)模式又分為兩種方式,懶漢式和餓漢式。
(1)懶漢式,就是只有當(dāng)調(diào)用getInstance的時(shí)候,才會(huì)初始化這個(gè)單例。
(2)餓漢式,就是一旦加載好類,就把單例初始化完成。即是調(diào)用getInstance的時(shí)候,單例是已經(jīng)存在了。
代碼如下:
懶漢式單例
/** * Description: * 一、設(shè)計(jì)了一個(gè)懶漢式單例 * * @author lee * */ public class SingleMode { public static SingleMode s = null; /** * Description: * 私有化構(gòu)造函數(shù) * * */ private SingleMode(){} /** * Description: * 提供一個(gè)方法來(lái)獲取該單例 * * @return s 返回一個(gè)單例 * */ public static SingleMode getInstance(){ //保證了線程安全,又減輕了資源加載和性能上的負(fù)擔(dān) //即是在創(chuàng)建一次對(duì)象后,不再需要線程鎖了。 if(s==null){ synchronized(""){ if(s==null){ s = new SingleMode(); } } } return s; } }
餓漢式單例
/** * Description: * 二、設(shè)計(jì)了一個(gè)餓漢式單例 * * @author lee * */ class SingleMode1{ public static final SingleMode1 s = new SingleMode1(); /** * Description: * 私有化構(gòu)造函數(shù) * * */ private SingleMode1(){} /** * Description: * 提供一個(gè)方法來(lái)獲取該單例 * * @return s 返回一個(gè)單例 * */ public static SingleMode1 getInstance(){ return s; } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。