單例模式,屬於創建類型的一種常用的軟件設計模式。通過單例模式的方法創建的類在當前進程中只有一個實例(根據需要,也有可能一個線程中屬於單例,如:僅線程上下文內使用同一個實例)
單例設計模式有懶漢式和餓漢式兩種表現形式.
1.懶漢式---非線程安全的
/*
* 設計一個符合單例設計模式的類
*/
/*
* 單利設計模式 ---餓漢式
*/
public class Single {
private static Single single = new Single();
/*
* new會調用構造方法----不讓開發人員直接調用構造方法
*/
private Single() {
}
public static Single getInstance() {
return Single.single;
}
}
2.餓漢式---線程安全的
/*
* 懶漢式
* */
public class Single1 {
private static Single1 single = null;
private Single1() {
}
//synchronized是同步的
public synchronized static Single1 getInstance() {
if(single == null) {
single = new Single1();
}
return single;
}
}