1. 程式人生 > >java基礎之構造方法私有化

java基礎之構造方法私有化

        構造方法私有化

  1. 構造方法私有化的操作
  2. 單例與多例設計模式
  • 單例設計模式 (Singleton)

 

當類中的構造方法私有化的時候,該類不能通過new 關鍵字進行例項化。那麼該如何解決呢???

 分析:

 第一步:構造方法使用了private宣告,那麼就表示這個構造方法只能被這個類的內部所使用。既然如此,那麼就可以在這個類的內部例項化物件

  第二步:現在的instance在Singleton裡面只是一個普通類的屬性,而所有的普通類屬性必須在類產生例項化物件之後才可以使用。是否存在有一種屬性,可以讓這個類不受Singleton類例項化物件的控制呢??如果使用了static宣告instance屬性,那麼就可以表示在一個類沒有產生例項化物件的時候直接使用該屬性。

 第三步:在定義一個類的時候,首先想到的就是對類中的屬性進行封裝。屬性一旦進行封裝便只能夠使用getter()方法訪問該屬性。所以現在就需要提供一個getter()方法,可以以同樣不受到Singleton例項化的控制,所以此時應該繼續使用static屬性。

單例設計模式的意義:

如果說現在要想控制一個類中例項化物件的產生個數,那麼首先就是要鎖定類中的構造方法。因為在例項化物件的時候,首先就是要呼叫類中的構造方法。

 既然需要一個例項化物件,那麼就可以在類的內部使用static方式來定義一個公共的物件,每一次通過static方法返回唯一的一個物件,這樣外部不管有多少次呼叫,那麼最終的一個類只能夠產生唯一的一個物件。

單例設計模式的特點???

  構造方法私有化,在類的內部定義static方法和屬性,利用static方法取得本類的例項化物件。不管外部產生多少個Singleton類的物件,但是本質上只有一個唯一的例項化物件。