單例設計模式

2021-07-31 08:07:45 字數 663 閱讀 4857

一直不理解單例模式餓漢式是怎麼保證唯一例項的。

懶漢式和餓漢式區別沒什麼好研究的,無外乎執行緒安全和延遲建立例項。

但是餓漢式每次都應該例項化就一次啊,是不是通過本類名載入類,類變數就只執行一次。

貼出**:

package test;

public class test

}.start();}}

}class demo

static demo demo =null;

public static demo return1()

}return demo;}}

class demo1

static demo1 demo =new demo1();

public static demo1 return1()

}上面**,類的建構函式都只執行了一次。且保證例項化物件都是同乙個。

後來想了想大概明白了,因為單例類指向例項物件的變數是靜態的,所以類一載入的時候,就建立了物件,也就相當於專案啟動的時候,就在方法區為靜態變數分配了記憶體,儲存了例項化物件的位址。懶漢式是在我們呼叫靜態方法的時候,才在第一次呼叫時將靜態變數指向例項物件的位址。

有的網上說餓漢式每次呼叫都例項化一次,純屬扯淡,單例模式自身物件都只是建立了一次,區別在於建立的時機不同。

大概這樣理解,歡迎大神指正。

單例設計模式(餓漢單例設計模式 懶漢單例設計模式)

1.什麼是單例 單例的意思是乙個類永遠只存在乙個物件,不能建立多個物件。2.為什麼要用單例 開發中有很多的物件我們只需要乙個,例如虛擬機器物件,任務管理器物件 物件越多越佔記憶體,有時候只需要乙個物件就可以實現業務,單例可以節省記憶體空間。3.如何實現單例 單例的實現方式有 餓漢單例設計模式 通過類...

設計模式 單例設計模式

歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...

設計模式 單例設計模式

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...