單例模式(singletonparrten):保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點
建立單例模式需要三方面操作
1.建立乙個物件
2.定義乙個私有構造方法(禁止外部類對其進行例項化)
3.提供乙個對外訪問的方法
單例模式可以通過懶漢式和餓漢式來實現。
懶漢式-執行緒不安全
/**
* 懶漢式-單例模式
* 執行緒不安全
* 在多執行緒的程式中,多個執行緒同時訪問singleton類,呼叫getinstance例項會有可能造成建立多個例項的。
*/public class singleton ;
public static singleton getinstance()
return instance;
}}
懶漢式-執行緒安全
/**
* 懶漢式-單例模式
* 執行緒安全
*/public class singleton ;
public static synchronized singleton getinstance()
return instance;
}}
懶漢式-執行緒安全(雙重鎖定)
/**
* 懶漢式-單例模式
* 執行緒安全
* 雙重鎖定
*/public class singleton ;
public static synchronized singleton getinstance()}}
return instance;
}}
餓漢式
/**
* 餓漢式
*/public class singleton;
public static singleton getinstance()
}
設計模式 建立型模式 單例模式
類載入時建立物件 常量 class eagersingleton public static eagersingleton getinstance 延遲載入 假如在某一瞬間 執行緒a 和 執行緒b 都在呼叫getinstance 方法,此時instance物件為null值,均能通過instance ...
設計模式 建立型模式 單例模式
優點 缺點頻繁使用 建立與銷毀 資源占用較多,例項化消耗大且耗時長,通過共享單例,加快物件的訪問速度 類要求只生成乙個例項的場景 需要單一控制邏輯的操作。具體如 多執行緒執行緒池 網路連線池 訪問資料庫或者檔案的物件等等。結構主要角色 實現 懶漢式實現 實現特點 該模式的特點是類載入時沒有生成單例,...
設計模式 建立型模式 單例模式
亦稱 單件模式 singleton 單例模式是一種建立型設計模式,讓你能夠保證乙個類只有乙個例項,並提供乙個訪問該例項的全域性節點。單例模式同時解決了兩個問題,所以違反了 單一職責原則 1.保證乙個類只有乙個例項。2.為該例項提供乙個全域性訪問節點 所有單例的實現都包含以下兩個相同的步驟 如果你的 ...