Java-單例模式

來源:互聯網
上載者:User

標籤:線程同步   方式   執行個體   分享圖片   private   靜態   single   資源   安全執行緒   

一、  單例模式:一種常用的軟體設計模式。通過單例模式可以保證系統中,應用該模式的類一個類只有一個執行個體。即一個類只有一個對象執行個體

二、  應用:線程池、緩衝、日誌對象、對話方塊、印表機、顯卡的驅動程式對象常被設計成單例

三、  單例模式特點:
      1、單例類只能有一個執行個體。
      2、單例類必須自己建立自己的唯一執行個體。
      3、單例類必須給所有其他對象提供這一執行個體。

四、單利模式的建立  

public class Singletn {    private String name;    private String id;    //建立唯一執行個體    private static Singletn singletn = new Singletn();    //對外提供執行個體    public static Singletn getInstant() {        return singletn;    }    //構造器私人化    private Singletn() {    }    public void setName(String name) {        this.name = name;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public String getId() {        return id;    }}
餓漢式單例模式
public class Singletn {    private String name;    private String id;    //建立唯一執行個體    private static Singletn singletn;    //對外提供執行個體    public static Singletn getInstant() {        if (singletn == null){//雙重檢查            synchronized (Singletn.class){//多線程時,安全執行緒問題,加鎖實現線程同步                singletn= new Singletn();            }        }        return singletn;    }    //構造器私人化    private Singletn() {    }    public void setName(String name) {        this.name = name;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public String getId() {        return id;    }}
懶漢式單例模式

  餓漢式與懶漢式區別:

    1.餓漢式即靜態初始化的方式,它是類一載入就執行個體化的對象,所以要提前佔用系統資源

    2.懶漢式類似於消極式載入,在使用的時候執行個體化,多線程中會有安全執行緒問題,需要雙重檢查

  推薦使用餓漢式。

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.