單例模式:單例模式是一種常用的軟件設計模式,通過單利模式可以保證我們的系統中一個類只有一個實例,並且該類易於外界的訪問。
單利模式存在的意義:例如,我們的系統中可以有多個打印的任務,但是我們只能有一個正在執行的打印的任務,這個正在執行的打印的任務就需要單例模式來控制。
單利模式特點:1. 一個類只能有一個實例
2.這個實例必須是自行創建的
3.這個類能夠自行整合整個系統提供這個實例。
單例模式的實現:1.一個單例模式的類只提供私有的構造函數
2.類定義中含有一個該類的靜態私有對象
3.該類提供一個靜態的公有的函數用於創建或獲取它本身的靜態私有對象。
單例模式的實例:
1.惡漢模式:
<span style="font-size:18px;">public class Singleton //這個模式中我們在類加載的時候就直接初始化了
{
private static Singleton instance = new Singleton();
public static Singleton getInstance() //在這我們提供了一個訪問本類的靜態方法,我們可以直接訪問
{
return instance ;
}
}
</span>
2.懶漢式(最常用的模式):
public class Singleton02 //在這裏我們進行了雙重判斷
{
private static Singleton02 instance;
public static Singleton02 getInstance()
{
if (instance == null)
{
synchronized (Singleton02.class)
{
if (instance == null)
{
instance = new Singleton02();
}
}
}
return instance;
}
}
3.使用一個持有類(目的是不在初始化的時候加載)
public class Singleton02
private static Singleton02 instance;
public static Singleton02 getInstance()
{
if (instance == null)
{
synchronized (Singleton02.class)
{
if (instance == null)
{
instance = new Singleton02();
}
}
}
return instance;
}
}
以上便是我對單例模式的理解了,當然我還會在後續的微博中爲大家介紹其它常用的設計模式。