單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例類的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。
單例設計模式保證乙個類只有乙個例項,並提供訪問它的全域性訪問點。單列設計模式步驟
1.建構函式私有化
2.宣告乙個本類例項物件
3.給外部方法提供乙個靜態方法來獲取物件例項
單例設計模式有兩種實現方法:餓漢式和懶漢式
1.餓漢式
此實現是執行緒安全的,多個執行緒進行訪問時不會例項化多個物件,因為static屬性只會被初始化一次,缺點是無論是否用到該例項都會被初始化。
package com.longpo;
public class singleton
}class person
//提供靜態方法給外部返回該例項
public static person getinstantperson()
public string getname()
public void setname(string name)
}
2.懶漢式
此實現缺點是執行緒不安全,當多個執行緒同時訪問的時候,極可能例項化出多個物件。懶漢式只有在初次使用物件時才去例項化。
package com.longpo;
public class singleton
}class person
//提供靜態方法給外部返回該例項
public static person getinstantperson()
return person;
} public string getname()
public void setname(string name)
}
可以使用執行緒同步**塊synchronized來解決執行緒不安全問題,把person改為
class person
//定義同步**塊的物件鎖
public static object object=new object();
// 提供靜態方法給外部返回該例項
public static person getinstantperson()
} return person;
} public string getname()
public void setname(string name)
}
一般最常使用的是加入同步**塊後的懶漢式方法來實現單例模式。
單例模式只有乙個例項,用於開發中的工具類,如連線資料庫的工具類,可能只需要乙份。此時就可以使用單例設計模式來解決
單例設計模式(餓漢單例設計模式 懶漢單例設計模式)
1.什麼是單例 單例的意思是乙個類永遠只存在乙個物件,不能建立多個物件。2.為什麼要用單例 開發中有很多的物件我們只需要乙個,例如虛擬機器物件,任務管理器物件 物件越多越佔記憶體,有時候只需要乙個物件就可以實現業務,單例可以節省記憶體空間。3.如何實現單例 單例的實現方式有 餓漢單例設計模式 通過類...
設計模式 單例設計模式
歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...
設計模式 單例設計模式
單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...