1. 程式人生 > >java設計模式——單列模式

java設計模式——單列模式

單列模式

           定義:

  在一個應用程式中單列模式的類有且只有一個例項,單列模式中又分為兩種,餓漢模式和懶漢模式。

    一、餓漢模式

           定義:餓漢模式,是在類載入的時候便建立例項,所謂餓漢,即表示這個類很飢渴,需要快速得到類的例項,所以在類加                      載的時候便會產生類的例項。

           實現方式:

                    1.將類預設的構造方法私有化,讓外部不能直接new一個例項。

                        

                    2.在類的內部建立該類的例項,該例項靜態私有化。

                       

                    3.提供一個靜態的get方法,返回內部靜態類的例項。

                        

            當我們需要得到這個類的例項時,直接呼叫這個類的getOne的靜態方法便可得到該類的例項,由於是靜態的,所以在類             載入的時候便會建立該類的例項。

   二、懶漢模式

        定義:在載入的時候並不會建立該類的例項,而是隻有在執行期外部呼叫該類的時候,才會建立該類的例項。所謂懶漢                        模式,表明它很懶,你不用,我就不會建立,只有在你需要用時,我才會建立。

        實現方式:

                1.預設的構造方法私有化,和餓漢模式的第一步一樣的。

                  

                2.私有化一個該類修飾的成員變數,但是並不會去建立該類的例項。

                    

                3.提供一個公共的get方法,在方法裡面,首先判斷成員變數是不是為空,如果為空,則去new 一個例項,如果不為                      空,則直接放回。作用,防止建立多個例項。

                   

  三、懶漢模式和懶漢模式的異同

          相同:     

                1.在一個應用程式中都是隻能建立類的一個例項。

                2.都是將構造方法私有化,在類的內部建立類的例項。

          不同:

                1.餓漢模式是在類載入時建立例項,而懶漢模式是在執行期需要要呼叫該類的例項時才建立。

                2.由於第一點,所以餓漢模式在類載入的時候比較慢,懶漢模式在執行時比較慢。

                3.餓漢模式是屬於執行緒安全的。懶漢模式執行緒不安全