23種設計模式 1單例模式

2021-06-19 07:49:30 字數 741 閱讀 8095

1.單例模式(singleton pattern)是一種簡單的設計模式,它的定義如下:為了確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。

2.通用**如下

class singleton

//通過該方法獲得例項化物件 public static songleton getinstance() public static void dosomething()}

3.優缺點 (1)記憶體中只有乙個例項,減少了記憶體開支,減少系統效能開銷(2)可以避免對資源的多重占用(3)設定全域性訪問點,優化和共享資源訪問(4)擴充套件困難,測試麻煩,與單一職責原則衝突4.使用場景(1)要求生成唯一序列號的環境(2)在整個專案中需要乙個共享的訪問點和共享資料(3)建立物件消耗的資源過多(4)需要定義大量的靜態常量和靜態方法

5.例項(某一時期皇帝只有乙個)

class emperor 

public static emperor getinstance()

public static void say()

}public class minister }}

23種設計模式 (1)單例模式

定義確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項 單例模式優點 單例模式的缺點 單例模式為什不能增加介面?因為對介面對單例模式沒有任何意義,它要求 自行例項化 並提供單一例項,介面或者抽象類不可能被例項化單例的使用場景 在乙個系統中,要求類有且僅有乙個物件,如果出現多個物件會有 不...

23種設計模式1 單例模式

單例模式 採取一定的方法保證在整個的軟體系統中,對某個類 只能存在乙個物件例項 並且該類只提供乙個取得其物件例項的方法。比如 sessionfactory 構造器私有化 類的內部建立物件 向外暴露乙個靜態的公共方法 2.2.1 方式一public class singleton 2.類的內部建立物件...

23種設計模式 單例模式

某些情況,如 執行緒池,乙個專案中匯流排程數量以及生命週期,可能需要統一控制 如果執行緒池自身可建立多個例項,那麼就無法統一控制,此時,只要能控制線程池物件的數量為乙個,那麼就可以實現統一控制的目標 注意 現實中真正使用純的單例模式並不多 如 spring bean 通過配置來決定是否使用單例 執行...