Java的設計模式 單例模式

2021-08-20 15:03:08 字數 1782 閱讀 9821

單例模式---根據名字就可以想的到就是說,讓乙個類只有乙個例項。

而且需要滿足下面三個條件才屬於單例模式:

1、單例類只能有乙個例項。

2、單例類必須自己建立自己的唯一例項。

3、單例類必須給所有其他物件提供這一例項。

根據上述的條件的我們可以想到  通過靜態的屬性、通過乙個靜態的方法來建立給物件,讓其可以通過方法名直接引用

簡單實現如下:

package testdesigndemo.singlecase;

public class singlecaseclass

//通過方法例項化

public static singlecaseclass get()

}

package testdesigndemo.singlecase;

public class singlecase

}

第一句是錯誤的沒法new  

上面是其中一種實現方式   下面還有幾種實現方式:

懶漢式(執行緒不安全)

package testdesigndemo.singlecase;

public class singlecaseclass

//通過方法例項化

public static singlecaseclass get()

return singlecase;

} //測試方法

public void printmessage()

}

懶漢式(執行緒安全)

package testdesigndemo.singlecase;

public class singlecaseclass

//通過方法例項化

public static synchronized singlecaseclass get()

return singlecase;

} //測試方法

public void printmessage()

}

兩者相比  就多在方法上面多加了乙個
synchronized
修飾詞

餓漢式   就是上述的例子:可以看到區別是:

private static singlecaseclass singlecase=new singlecaseclass();
也就是說在編譯期類就已經載入了   耗記憶體

雙重校驗

package testdesigndemo.singlecase;

public class singlecaseclass

//通過方法例項化

public static singlecaseclass get()

}} return singlecase;

} //測試方法

public void printmessage()

}

登記式/靜態內部類

public class singlecaseclass

private singleton (){}

public static final singleton getinstance()

}

列舉

public enum singlecaseclass   

}

Java設計模式 單例模式

單例模式 singleton 顧名思義,就是乙個類只有乙個例項。作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。從具體...

java設計模式 單例模式

這個模式是很有意思,而且比較簡單,但是我還是要說因為它使用的是如此的廣泛,如此的有人緣,單例就是單 一 獨苗的意思,那什麼是獨乙份呢?你的思維是獨乙份,除此之外還有什麼不能山寨的呢?我們舉個比較難複製的物件 皇帝中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這...

java設計模式 單例模式

單例模式介紹 單例模式分 懶漢式單例 餓漢式單例。單例模式有一下特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例有併發問題,只有乙個例項,多個執行緒就可能同...