您好,登錄后才能下訂單哦!
java 中設計模式之單例
設計模式思想
什么是設計模式:我作為初學者,今天第一次正式學習設計模式,我覺得對與理解什么是設計模式很重要,那么什么是設計模式呢?
設計模式:解決問題的一種行之有效的思想。
設計模式:用于解決特定環境下、重復出現的特定問題的解決方案
我的理解是前人在軟件設計的時候碰到了一類問題,他們總結出了一套行之有效,并且經過驗證的解決方案。
設計模式的優點:
1、設計模式都是一些相對優秀的解決方案,很多問題都是典型的、有代表性的問題,學習設計模式,我們就不用自己從頭來解決這些問題,相當于在巨人的肩膀上,復用這些方案即可。
2、設計模式已經成為專業人士的常用詞匯,不懂不利于交流。
3、能讓你設計的系統更加專業,讓系統有更好的架構。
設計模式1~~單例
單利設計模式是用來解決在內存里面只能存在一個的某個類 的問題。 這個比較抽象,打個比方說 你要做一個打麻將游戲,丟骰子,第一個人丟了顯示的幾個數字,后面的人也要用。骰子這個類在內存里只允許存在一份。此類問題就需要用單例設計方案解決。
第一種: 餓漢式 先自己new 出來。速度快,單是占用內存多。
public class Single { private final static Single s = new Single(); //類只能有一個故私有化構造方法,不讓外面new對象 private Single(){ } //工廠方法的命名規范 getinstance //當外面沒辦法new對象時候,我們對像給外面調要自己來new // 當沒發new 對象時候,必須是靜態方法,給外界使用。 public static Single getInstance(){ return s; } }
第二種: 懶漢式
//懶漢式 public class Single2 { // 先步開內存,需要用的時候才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時,鎖屬于類模板的,當方法是對象調用時鎖就屬于對象的。
以上就是對java中單例模式的詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。