1. 乙個class只有乙個物件,減少了記憶體開支
2. 避免對資源多重占用
1. 頻繁建立及銷毀的物件,例如工具類2. 不變的物件
3. 重量級物件,例如jdbc連線,httpclient等
/*** 惡漢式
* 優點:類載入時就完成了例項化,避免了執行緒同步問題。
* 缺點:static一直強引用這物件,直至類被銷毀物件才會被銷毀。可能造成記憶體浪費
*/public
class
singleton
public
static
singleton getinstance()
}
/*** 懶漢式(雙重檢查)
* 優點:執行緒安全,延遲載入,效率較高
*/public
class
singleton
public
static
singleton getinstance() }}
return
singleton;
}}
/*** 靜態內部類
* 原理:採用類載入的機制保證例項化的執行緒安全。當需要物件時,呼叫 getinstance 方法時才會載入 singletoninstnce 類,完成例項化。
* 優點:執行緒安全,延遲載入
*/public
class
singleton
private
static
class
singletoninstance
public
static
singleton getinstance()
}
/*** 列舉
* 原理:借用列舉來實現單例,不僅能避免執行緒問題,還能防止反序列化重新建立新的物件。
*/public
enum
singleton
}
1 單例模式
乙個類只能有乙個例項。比如印表機這種東西。trick在於 變數,構造方法都必須為private,所以其他類new它的構造方法是不行的,直接呼叫變數也不行。只能呼叫getinstance 方法 其他被public修飾的方法。getinstance 方法記得用public修飾。原理 public cla...
1 單例模式
某個物件只需要乙個例項的情況,比方說gamemanager,resourcemanagerusing system namespace 單例模式 定義公有方法提供乙個全域性訪問點,同時你也可以定義公有屬性來提供全域性訪問點 public static singleton getinstance 構造...
單例模式1
1 餓漢式 author version 0.1 單例模式 餓漢式 建立時進行例項化 1 私有化構造方法 2 建立私有例項 static 3 建立公共類方法 static 方法輸出單例 public class singleton5 公共方法 public static singleton5 get...