<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            JAVA設計模式之單例模式

            時間:2025-10-19 04:17:59 java語言

            JAVA設計模式之單例模式

              1. 模式介紹

              模式的定義

              確保某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例。

              模式的使用場景

              確保某個類有且只有一個對象的場景,例如創建一個對象需要消耗的資源過多,如要訪問 IO 和數據庫等資源。

              2. UML類圖

              角色介紹:

              (1)Client : 高層客戶端。

              (2)Singleton : 單例類。

              3. 模式的簡單實現

              public class Singleton { private static Singleton intance; private Singleton() {} public static Singleton getInstance() { /* * 一開始多線程進來,遇到鎖,一個線程進去,是為空,new對象; 后續線程進入,不為空,不操作;最后直接返回 * 對象不為空,再有多個線程進入該函數,不為空,不執行加鎖操作,直接返回 */ if (intance == null) { synchronized (Singleton.class) { if (intance == null) { intance = new Singleton(); } } } return intance; } } class Singleton1 {/pic/pic/pic/pic/pic/pic/pic/pic/pic/p>

              4.優點與缺點

              (1)優點:

              A.由于單例模式在內存中只有一個實例,減少了內存開支,特別是一個對象需要頻繁地創建、銷毀時,而且創建或銷毀時性能又無法優化,單例模式的優勢就非常明顯。

              B.由于單例模式只生成一個實例,所以減少了系統的性能開銷,當一個對象的產生需要比較多的資源時,如讀取配置、產生其他依賴對象時,則可以通過在應用啟動時直接產生一個單例對象,然后用永久駐留內存的方式來解決;

              C.單例模式可以避免對資源的多重占用,例如一個寫文件動作,由于只有一個實例存在內存中,避免對同一個資源文件的同時寫操作。

              D.單例模式可以在系統設置全局的訪問點,優化和共享資源訪問,例如可以設計一個單例類,負責所有數據表的映射處理。

              (2)缺點

              A.單例模式一般沒有接口,擴展很困難,若要擴展,除了修改代碼基本上沒有第二種途徑可以實現。

            【JAVA設計模式之單例模式】相關文章:

            Java單例設計模式12-21

            JAVA多線程并發下的單例模式應用02-22

            java設計模式:工廠模式10-04

            java設計模式:裝飾模式11-13

            java設計模式:DAO模式03-13

            java設計模式:多例模式01-30

            解析Java的設計模式編程之解釋器模式的運用01-21

            Java的設計模式編程中責任鏈模式的運用的實例講解03-13

            Java的結構型模式06-21

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看