java 中設(shè)計模式之單例
java 中設(shè)計模式之單例
設(shè)計模式思想
什么是設(shè)計模式:我作為初學(xué)者,今天第一次正式學(xué)習(xí)設(shè)計模式,我覺得對與理解什么是設(shè)計模式很重要,那么什么是設(shè)計模式呢?
設(shè)計模式:解決問題的一種行之有效的思想。
設(shè)計模式:用于解決特定環(huán)境下、重復(fù)出現(xiàn)的特定問題的解決方案
我的理解是前人在軟件設(shè)計的時候碰到了一類問題,他們總結(jié)出了一套行之有效,并且經(jīng)過驗證的解決方案。
設(shè)計模式的優(yōu)點:
1、設(shè)計模式都是一些相對優(yōu)秀的解決方案,很多問題都是典型的、有代表性的問題,學(xué)習(xí)設(shè)計模式,我們就不用自己從頭來解決這些問題,相當于在巨人的肩膀上,復(fù)用這些方案即可。
2、設(shè)計模式已經(jīng)成為專業(yè)人士的常用詞匯,不懂不利于交流。
3、能讓你設(shè)計的系統(tǒng)更加專業(yè),讓系統(tǒng)有更好的架構(gòu)。
設(shè)計模式1~~單例
單利設(shè)計模式是用來解決在內(nèi)存里面只能存在一個的某個類 的問題。 這個比較抽象,打個比方說 你要做一個打麻將游戲,丟骰子,第一個人丟了顯示的幾個數(shù)字,后面的人也要用。骰子這個類在內(nèi)存里只允許存在一份。此類問題就需要用單例設(shè)計方案解決。
第一種: 餓漢式 先自己new 出來。速度快,單是占用內(nèi)存多。
public class Single {
private final static Single s = new Single();
//類只能有一個故私有化構(gòu)造方法,不讓外面new對象
private Single(){
}
//工廠方法的命名規(guī)范
getinstance
//當外面沒辦法new對象時候,我們對像給外面調(diào)要自己來new
// 當沒發(fā)new 對象時候,必須是靜態(tài)方法,給外界使用。
public static Single getInstance(){
return s;
}
}
第二種: 懶漢式
//懶漢式
public class Single2 {
// 先步開內(nèi)存,需要用的時候才new
private static Single2 s=null;
private Single2(){
}
// synchronized 用來防多線程時。第一個和第二個線程搶資源都會進入s==null,
時new 兩次。
public synchronized static Single2 getInstance(){
if(s==null){
s = new Single2();
}
return s;
}
}
synchronized 看成鎖是屬于getInstance方法的。當方法屬于static時,鎖屬于類模板的,當方法是對象調(diào)用時鎖就屬于對象的。
以上就是對java中單例模式的詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
詳解mybatis-plus的 mapper.xml 路徑配置的坑
這篇文章主要介紹了詳解mybatis-plus的 mapper.xml 路徑配置的坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

