java設計模式——單列模式
單列模式
定義:
在一個應用程式中單列模式的類有且只有一個例項,單列模式中又分為兩種,餓漢模式和懶漢模式。
一、餓漢模式
定義:餓漢模式,是在類載入的時候便建立例項,所謂餓漢,即表示這個類很飢渴,需要快速得到類的例項,所以在類加 載的時候便會產生類的例項。
實現方式:
1.將類預設的構造方法私有化,讓外部不能直接new一個例項。
2.在類的內部建立該類的例項,該例項靜態私有化。
3.提供一個靜態的get方法,返回內部靜態類的例項。
當我們需要得到這個類的例項時,直接呼叫這個類的getOne的靜態方法便可得到該類的例項,由於是靜態的,所以在類 載入的時候便會建立該類的例項。
二、懶漢模式
定義:在載入的時候並不會建立該類的例項,而是隻有在執行期外部呼叫該類的時候,才會建立該類的例項。所謂懶漢 模式,表明它很懶,你不用,我就不會建立,只有在你需要用時,我才會建立。實現方式:
1.預設的構造方法私有化,和餓漢模式的第一步一樣的。
2.私有化一個該類修飾的成員變數,但是並不會去建立該類的例項。
3.提供一個公共的get方法,在方法裡面,首先判斷成員變數是不是為空,如果為空,則去new 一個例項,如果不為 空,則直接放回。作用,防止建立多個例項。
三、懶漢模式和懶漢模式的異同
相同:
1.在一個應用程式中都是隻能建立類的一個例項。
2.都是將構造方法私有化,在類的內部建立類的例項。
不同:
1.餓漢模式是在類載入時建立例項,而懶漢模式是在執行期需要要呼叫該類的例項時才建立。
2.由於第一點,所以餓漢模式在類載入的時候比較慢,懶漢模式在執行時比較慢。
3.餓漢模式是屬於執行緒安全的。懶漢模式執行緒不安全