java設計模式-單例模式Singleton
1. 單例設計模式
採取一定的方法,保證在整個系統執行中,某個類只有一個物件例項
2. 如何實現
1. 私有化類的構造器 顯示寫出構造方法,避免new 出系統自帶的預設構造方法
2. 內部建立類的物件
3. 提供公有的方法,返回累的物件
3. 餓漢和懶漢的區別
餓漢式: 缺點:建立類的時候就載入,載入時間過長
優點:執行緒是安全的
懶漢式: 延遲物件載入。
package singleton;
// 餓漢單例模式
public class Singletontest {
//1. 私有化類的構造器
private Singletontest() {
}
//2. 內部建立類的物件
private static Singletontest Singleton_instance = new Singletontest();
//3. 提供公有的方法,返回累的物件
public static Singletontest getSingletoninstance() {
return Singleton_instance;
}
}
package singleton;
// 懶漢單例模式 在類載入的時候,麼有建立靜態的物件,而是在呼叫的時候,在建立
public class Singletontestlazy {
//1. 私有化類的構造器
private Singletontestlazy() {
}
//2. 宣告當前物件麼有初始化
private static Singletontestlazy Singleton_instance = null;
//3. 宣告public、static的返回當前類物件的方法
public static Singletontestlazy getSingletoninstance() {
// 如果為空,則還未建立物件,為其建立,如果不為空,則認為已經建立過,則直接返回。單例的本質就是隻建立一個全域性靜態物件,建立共有方法呼叫
if (Singleton_instance == null){
Singleton_instance = new Singletontestlazy();
}
return Singleton_instance;
}
}
package singleton;
//測試
public class TestDemo {
public static void main(String[] args) {
//餓漢單例模式測試
Singletontest s1 = Singletontest.getSingletoninstance();
Singletontest s2 = Singletontest.getSingletoninstance();
System.out.println(s1 == s2);
//飽漢單例模式測試
Singletontestlazy s1lzay = Singletontestlazy.getSingletoninstance();
Singletontestlazy s2lzay = Singletontestlazy.getSingletoninstance();
System.out.println(s1lzay == s2lzay);
// 結果都為true,說明兩次建立的物件都是同一個物件
}
}
相關文章
- 設計模式—singleton(單例模式)設計模式單例
- Singleton 單例設計模式單例設計模式
- 常用設計模式-單例模式(Singleton pattern)設計模式單例
- 設計模式之單例模式(Singleton Pattern)設計模式單例
- PHP設計模式(四)單例模式(Singleton)PHP設計模式單例
- 《設計模式》 - 1. 單例模式( Singleton )設計模式單例
- 設計模式--單例(Singleton Pattern)設計模式單例
- PHP設計模式(一)—單例模式(Singleton Pattern)PHP設計模式單例
- Scala 與設計模式(一):Singleton 單例模式設計模式單例
- 設計模式之“物件效能模式”: Singleton 單例模式(筆記)設計模式物件單例筆記
- 單例模式(Singleton)單例模式
- 單例模式 singleton單例模式
- 設計模式 - 單例模式Singleton的8種寫法設計模式單例
- 2.C#設計模式系列01_單例模式_SingletonC#設計模式單例
- Java設計模式-單例模式Java設計模式單例
- Java設計模式【單例模式】Java設計模式單例
- Java設計模式 | 單例模式Java設計模式單例
- Java設計模式——單例模式Java設計模式單例
- Java設計模式--單例模式Java設計模式單例
- Java設計模式–單例模式Java設計模式單例
- 單例模式(Singleton Pattern)單例模式
- 一天一個設計模式(二) - 單例模式(Singleton)設計模式單例
- Java常用設計模式-單例模式Java設計模式單例
- Java設計模式之單例模式Java設計模式單例
- Java設計模式——單例模式(建立型模式)Java設計模式單例
- java單例設計模式Java單例設計模式
- laravel singleton 單例模式使用Laravel單例模式
- Singleton——單例模式(8種)單例模式
- Java設計模式系列之單例設計模式Java設計模式單例
- 淺識JAVA設計模式——單例設計模式Java設計模式單例
- java設計模式其一 單例模式Java設計模式單例
- 設計模式(四)Singleton設計模式設計模式
- Singleton設計模式設計模式
- [DELPHI]單例模式(singleton) 陳省單例模式
- Singleton(單例)——物件建立型模式單例物件模式
- 折騰Java設計模式之單例模式Java設計模式單例
- 設計模式 單例模式設計模式單例
- 設計模式——單例模式設計模式單例