設計模式(Design pattern)是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的;設計模式使代碼編制真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結構同樣。html
設計模式分爲三種類型,共23種設計模式
單例模式是最簡單的設計模式之一,保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。緩存
適用性安全
例如:工具
配置文件、工具類、線程池、緩存、日誌對象等學習
若是以上這些對象創造出多個實例,就會致使許多問題, 好比佔用過多資源,不一致的結果等。那麼如何保證整個應用中某個實例有且只有一個呢?這裏咱們就能夠經過 單例模式來實現了。spa
常見的單例模式分爲以下兩類:線程
class InstanceDemo2 { public static void main(String[] args){ 懶漢 懶=懶漢.getInstance(); 懶漢 漢=懶漢.getInstance(); if(懶==漢){ System.out.println("是同一個實例"); }else{ System.out.println("不是同一個實例"); } } } //懶漢模式 class 懶漢{ //1,將構造方法私有化,不容許外部直接建立對象 private 懶漢(){} //2,聲明類的惟一實例,使用private static 修飾 private static 懶漢 lazy; //默認值爲null //定義getInstance public static 懶漢 getInstance(){ if(lazy==null){ lazy=new 懶漢(); } return lazy; } }
class InstanceDemo { public static void main(String[] args){ 餓漢 餓=餓漢.getInstance(); 餓漢 漢=餓漢.getInstance(); if(餓==漢){ System.out.println("是同一個實例"); }else{ System.out.println("不是同一個實例"); } } } class 餓漢{ //1.限制外界不能隨意的new對象 private 餓漢(){} //在類內部造對象,而後在將對象送出去 //2.建立對象 private static final 餓漢 h=new 餓漢(); //3.提供一個用於獲實例的方法, 使用public static修飾 public static 餓漢 getInstance(){ return h; } }
餓漢模式的特色是加載類是比較慢,可是運行時獲取對象的速度比較快,線程安全,懶漢模式的特色是加載類是比較快,可是運行獲取對象的速度比較慢,線程不安全設計
如以上文章或連接對你有幫助的話,別忘了在文章結尾處輕輕點擊一下 「還不錯」按鈕或到頁面右下角點擊 「贊一個」 按鈕哦。你也能夠點擊頁面右邊「分享」懸浮按鈕哦,讓更多的人閱讀這篇文章。代理