# 單例模式
在實際的開發中,絕大部分的服務性質的類都會設計成單例模式
所謂的單例模式,就是類只有一個對象,外部要使用該類的對象,通過調用一個類方法實現。
## 單例模式特點
* 1、單例類只能有一個實例。
* 2、單例類必須自己創建自己的唯一實例。
* 3、單例類必須給所有其他對象提供這一實例。
## 單例模式實現
關鍵代碼:保證構造函數是私有的。
~~~
/**
* 餓漢式單例模式
* @author lzq31
*
*/
public class Service2 {
private static Service2 service = new Service2();
private Service2() {
}
public static Service2 getInstance() {
return service;
}
}
~~~
~~~
/**
* 懶漢式單例模式
* @author lzq31
*
*/
public class Service {
private static Service service;
private Service() {
}
public static Service getInstance() {
if (null == service) {
service = new Service();
}
return service;
}
}
~~~
## 單例模式的檢測
~~~
//當Demo為單例模式時
public class Demo {
private static Demo demo = new Demo();
private Demo() {}
public static Demo getInstance() {
return demo;
}
public int a = 1;
}
public class Demo2 {
public static void main(String[] args) {
Demo demo = Demo.getInstance();
Demo demo2 = Demo.getInstance();
demo.a = demo.a + 1;
System.out.println(demo.a);
System.out.println(demo2.a);
}
}
//當Demo不為單例模式的時候
public class Demo {
public int a = 1;
}
public class Demo2 {
public static void main(String[] args) {
Demo demo = new Demo();
Demo demo2 = new Demo();
demo.a = demo.a + 1;
System.out.println(demo.a);
System.out.println(demo2.a);
}
}
~~~
- Java業余班教學管理
- JAVA基礎
- JAVA開發學習準備
- JAVA介紹
- 開發JAVA的準備
- JAVA的運行原理
- JDK配置
- 我的第一個JAVA程序
- 類與對象
- 基礎語言要素
- 數據類型
- Eclipse的安裝與使用
- 變量
- 直接量
- 運算符
- 流程控制
- 數組結構
- 面向對象
- 隱藏與封裝
- 深入構造器
- 類的繼承
- 多態
- 包裝類
- final修飾符
- 抽象類
- 接口
- 設計模式
- 單例模式
- 工廠模式
- 集合框架
- 集合排序
- 常用類學習
- 異常處理
- Java基礎綜合練習
- JAVA高級
- 泛型
- 多線程
- 線程的創建
- 線程的生命周期
- 線程同步
- 線程通信
- 輸入輸出流(I/O編程)
- File文件操作
- 字節流與字符流
- 數據庫
- 數據庫介紹
- 數據庫安裝
- SQL
- 表的基本操作
- 修改數據語句
- 數據檢索操作
- 多表數據操作
- 表結構設計
- 綜合應用
- JavaWeb