核心作用:保證乙個類只有乙個例項,並提供乙個訪問該例項的全域性訪問點
單例模式分為:懶漢式、餓漢式、雙重檢測鎖、內部類式、列舉式
public class lazysingleclass //構造器私有化
public static lazysingleclass getinstance()
}
餓漢式:只是宣告乙個私有的靜態類,但不進行初始化,第一次使用的時候進行初始化,要加上同步字段
public class hungrysingleclass
public
static hungrysingleclass getinstance()
return instance;
}}
雙層檢測鎖:
/**
* 雙重檢測鎖
* 該模式將同步加到了if後邊提高了呼叫的效率,但是偶然會出現問題
* @author admain
* */
public
class
doublelock
private
static doublelock instance;
public
static
synchronized doublelock getinstance()
}}return instance;}}
}
內部類方式:通過內部類持有物件來實現單例模式
public
class
staticinnerclass
//內部類天然執行緒安全,沒有同步**塊效率高
private
static
class
innerclass
public
static staticinnerclass getinstance()
}
列舉方式實現:定義列舉型別,然後在列舉類體內新增需要的方法
public
enum enumstyle
}
設計模式之 單例設計模式
單例設計模式 單例設計模式概述 單例模式就是要確保類在記憶體中只有乙個物件,該例項必須自動建立,並且對外提供。優點 在系統記憶體中只存在乙個物件,因此可以節約系統資源,對於一些需要頻繁建立和銷毀的物件單例模式無疑可以提高系統的效能。缺點 沒有抽象層,因此擴充套件很難。職責過重,在一定程式上違背了單一...
設計模式之單例設計模式
singleton 保證乙個類只有乙個例項,並提供訪問它的全域性訪問點 類初始化時,立即載入這個物件 沒有延時載入的優勢 載入類時,天然的是執行緒安全的!private static singletondemo1 instance new singletondemo1 private singlet...
設計模式之單例設計模式
目錄 1.到底什麼是設計模式?2.什麼是單例設計模式?3.單列設計模式的兩種實現方式 餓漢式懶漢式 執行緒不安全 4.執行緒安全的寫法 餓漢式懶漢式 執行緒安全 設計模式可以理解為別人成功的故事,通用的套路,前人的經驗,設計模式是一種思想,沒有具體的實現。打乙個比方 世界上只有乙個太陽,乙個月亮,單...