更新時間:2022年05月06日14時05分 來源:傳智教育 瀏覽次數(shù):
Java中單例模式定義:“一個類有且僅有一個實例,并且自行實例化向整個系統(tǒng)提供。”
這其中的設(shè)計原則有:
1. 單例模式的類只提供私有的構(gòu)造函數(shù);
2. 類定義中含有一個該類的靜態(tài)私有對象;
3. 該類提供了一個靜態(tài)的公有的函數(shù)用于創(chuàng)建或獲取它本身的靜態(tài)私有對象。
單例模式的優(yōu)點:
1. 實例控制,單例模式會阻止其他對象實例化其自己的單例對象的副本,從而確保所有對象都訪問唯一實例。
2. 靈活性,因為類控制了實例化過程,所以類可以靈活更改實例化過程。
單例模式的缺點 :
1. 開銷,雖然數(shù)量很少,但如果每次對象請求引用時都要檢查是否存在類的實例,將仍然需要一些開銷??梢酝ㄟ^使用靜態(tài)初始化解決此問題。
2. 可能的開發(fā)混淆,使用單例對象(尤其在類庫中定義的對象)時,開發(fā)人員必須記住自己不能使用new關(guān)鍵字實例化對象。因為可能無法訪問庫源代碼,因此應(yīng)用程序開發(fā)人員可能會意外發(fā)現(xiàn)自己無法直接實例化此類。