單例設計模式,設計模式

來源:互聯網
上載者:User

單例設計模式,設計模式

單例設計模式解決的問題:保證一個類在記憶體中的對象唯一性。

比如:多程式讀取一個設定檔時,建議設定檔封裝成對象。會方便操作其中的資料,又要保證多個程式讀到的是同一個設定檔對象,就需要該設定檔對象在記憶體中是唯一的。

Runtime()方法就是單例設計模式進行設計的

保證對象唯一性的思想:

1. 不讓其他程式建立該類對象;

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

3. 對外提供方法,讓其他程式擷取這個對象。

保證對象唯一性的步驟:

1.因為建立對象都需要建構函式初始化,只要將本類中的建構函式私人化,其他程式就無法再建立該類對象;

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

 

3.定義一個方法,返回該對象,讓其他程式可以通過方法就得到本類對象。(作用:可控)

代碼的體現:

1.私人化建構函式;

2.建立私人並靜態本類對象;

3.定義公有並靜態方法,返回該對象。

------------------------------------------------------------------------------

/*********  餓漢式  *********/

class Single(){

  private Single(){} //私人化建構函式

  private static Single sg = new Single();//建立私人並靜態本類對象

  public static Single getInstance(){ //定義公有靜態方法,返回該對象

    return sg;

  }

}

/*********  懶漢式:消極式載入方法  *********/

class Single2(){

  private Single2(){}

  private static Single2 sg2 = null;

  public static Single2 getInstance(){

    if( null == sg2 ){

      sg2 = new Single2();

      return sg2;

    }  

  }

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.