所謂類的單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對
某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法。
如果我們要讓類在乙個虛擬機器中只能產生乙個物件,我們首先必須將類的構
造器的訪問許可權設定為private,這樣,就不能用new操作符在類的外部產生
類的物件了,但在類內部仍可以產生該類的物件。因為在類的外部開始還無
法得到類的物件,只能呼叫該類的某個靜態方法以返回類內部建立的物件,
靜態方法只能訪問類中的靜態成員變數,所以,指向類內部產生的該類物件
的變數也必須定義成靜態的。
餓漢式:
class
singleton
// 2.內部提供乙個當前類的例項
// 4.此例項也必須靜態化
private
static singleton single =
newsingleton()
;// 3.提供公共的靜態的方法,返回當前類的物件
public
static singleton getinstance()
}
class
singleton
// 2.內部提供乙個當前類的例項
// 4.此例項也必須靜態化
private
static singleton single;
// 3.提供公共的靜態的方法,返回當前類的物件
public
static singleton getinstance()
return single;
}}
餓漢式:壞處:物件載入時間長
好處:執行緒安全
懶漢式:好處:延遲物件的建立
壞處:執行緒不安全
static和單例設計模式
static關鍵字的使用 static 靜態的 static可以用來修飾屬性,方法,塊,內部類 使用static修飾屬性 靜態變數 static修飾屬性說明 靜態變數隨著類的載入而載入 靜態的變數載入要早於物件的建立 由於類只會載入一次,則靜態變數在記憶體中也只會存在乙份 存在方法區的靜態域中。st...
單例模式 基於headfirst設計模式的總結
1.經典的單例模式 懶漢式 public class singleton public static singleton getinstance return uniqueinstance other useful methods here 主要的就是3步 1.建立靜態私有變數 2.建立私有構造方法...
基於java的設計模式(2)單例模式
單例模式 作用 保證整個應用程式中某個例項有且只有乙個 型別 餓漢模式 懶漢模式 demo1 package singleton public class singleton 建立類的例項,使用 static public static singleton instance new singleto...