【Java編程】 設計模式 -- 單例設計模式

來源:互聯網
上載者:User

標籤:rgs   原則   string   tool   turn   get   void   pre   思想   

思想:


  1. 為了避免其他程式過多建立該類對象,先禁止其他程式建立該類對象

  2. 為了讓其他程式可以訪問到該類對象,只好在本類中自訂一個對象

  3. 為了方便其他程式對自訂對象的訪問,可以對外提供一些訪問方式


代碼體現:


  1. 將建構函式私人化

  2. 在類中建立一個本類對象

  3. 提供一個方法可以擷取到該對象


代碼一

先初始化對象

稱為:餓漢式

Single類一進記憶體,就已經建立好了對象。

public class SingleModeDemo {public static void main(String[] args){}}class Single{private Single(){}private static Single s = new Single();public Single getInstance(){return s;}}


代碼二

對象是方法被調用時,才初始化,也叫作對象的延時載入。

稱為:懶漢式

Single類進記憶體,對象還沒有存在,只有調用了getInstance方法時,才建立對象

public class SingleModeDemo {public static void main(String[] args){System.out.println("Hello world");}}class Single{private static Single s = null;private Single(){}public static synchronized Single getInstance(){        if(s==null){            synchronized(Single.class){                if(s==null)                    s = new Single();            }        }return s;}}


原則:定義單例,建議使用餓漢式

【Java編程】 設計模式 -- 單例設計模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.