java 單例類

來源:互聯網
上載者:User

標籤:

·單例類

    單一實例類,就是這個類只能建立一個對象,保證了對象執行個體的唯一性。

 

例子:單一實例類


 

class Singleton {     private static Singleton instance;  //使用static修飾,因為它要在該類的靜態方法中被訪問,作用                     //是一個引用變數指向對象。           private Singleton(){};  //提供一個私人的構造器,使用方法來控制它建立對象的個數。       //方法必須是public的和static的,因為方法要公開被下面的類調用並且下面的s1引用變數擷取方法的方式是        //通過類.方法來實現的。因為不能建立對象,所以只能用類。這樣就約束了只能建立一個對象。      public static Singleton getInstance()     {         if (instance == null)         {             instance = new Singleton();         }          return instance;     } }   public class SingletonTest {     public static void main(String[] args)     {         Singleton s1 = Singleton.getInstance();         Singleton s2 = Singleton.getInstance();         System.out.println(s1 == s2);   //結果為true,這裡可以看出確實是同一個對象 "=="比較兩個對象的記憶體位址是否相同。    } } 

//餓漢式
//class  single1
//{
//        private static single1 s=null;
//        private single1() {}
//        public static single1 getinstance()
//        {
//                if(s==null)
//                        s=new single();
//                return s;
//        }
//}
//懶漢式
//原則  定義單例時原則上用餓漢式
class singledemo
{
        public static void main(String [] args)
        {
                System.out.println("Hello world");
        }
}

1。為了避免其他程式多建立該類對象。先禁止其他程式建立該類對象
2。還未了讓其他程式反問改類對象。只好在本類中。自訂一個對象
3。為了方便其他程式對自訂對象的訪問。可以對外提供一些訪問方式

為了避免其他程式多建立該類對象。先禁止其他程式建立該類對象。
如果對象中建構函式可以傳入參數。建立對象。就會改變對象初始化資料。而該對象只提供功能。避免其他調用著建立對象,而改動初始資料。所以封裝對象

 

1、單例模式能夠保證一個類僅有唯一的執行個體,並提供一個全域訪問點。
2、單例模式主要有3個特點:
(1)、單例類確保自己只有一個執行個體。
(2)、單例類必須自己建立自己的執行個體。
(3)、單例類必須為其他對象提供唯一的執行個體。
3、對於懶漢模式,我們可以這樣理解:該單例類非常懶,只有在自身需要的時候才會行動,從來不知道及早做好準備。它在需要對象的時候,才判斷是否已有對象,如果沒有就立即建立一個對象,然後返回,如果已有對象就不再建立,立即返回。
4、對於餓漢模式,我們可以這樣理解:該單例類非常餓,迫切需要吃東西,所以它在類載入的時候就立即建立對象。

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.