精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學習啦 > 知識大全 > 知識百科 > 百科知識 > java中什么是單例

      java中什么是單例

      時間: 歐東艷656 分享

      java中什么是單例

        java模式之單例模式:

        單例模式確保一個類只有一個實例,自行提供這個實例并向整個系統(tǒng)提供這個實例。

        特點:

        1,一個類只能有一個實例

        2,自己創(chuàng)建這個實例

        3,整個系統(tǒng)都要使用這個實例

        例: 在下面的對象圖中,有一個"單例對象",而"客戶甲"、"客戶乙" 和"客戶丙"是單例對象的三個客戶對象??梢钥吹?,所有的客戶對象共享一個單例對象。而且從單例對象到自身的連接線可以看出,單例對象持有對自己的引用。

        Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。在很多操作中,比如建立目錄 數(shù)據(jù)庫連接都需要這樣的單線程操作。一些資源管理器常常設計成單例模式。

        外部資源:譬如每臺計算機可以有若干個打印機,但只能有一個Printer Spooler,以避免兩個打印作業(yè)同時輸出到打印機中。每臺計算機可以有若干個通信端口,系統(tǒng)應當集中管理這些通信端口,以避免一個通信端口被兩個請求同時調(diào)用。內(nèi)部資源,譬如,大多數(shù)的軟件都有一個(甚至多個)屬性文件存放系統(tǒng)配置。這樣的系統(tǒng)應當由一個對象來管理這些屬性文件。

        一個例子:Windows 回收站。

        在整個視窗系統(tǒng)中,回收站只能有一個實例,整個系統(tǒng)都使用這個惟一的實例,而且回收站自行提供自己的實例。因此,回收站是單例模式的應用。

        兩種形式:

        1,餓漢式單例類

        public class Singleton {

        private Singleton(){}

        //在自己內(nèi)部定義自己一個實例,是不是很奇怪?

        //注意這是private 只供內(nèi)部調(diào)用

        private static Singleton instance = new Singleton();

        //這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問

        public static Singleton getInstance() {

        return instance;

        }

        }

        2,懶漢式單例類

        public class Singleton {

        private static Singleton instance = null;

        public static synchronized Singleton getInstance() {

        //這個方法比上面有所改進,不用每次都進行生成對象,只是第一次

        //使用時生成實例,提高了效率!

        if (instance==null)

        instance=new Singleton();

        return instance;   }

        }

      245929