面試題2 實現Singleton模式

2021-06-25 23:43:51 字數 1273 閱讀 1815

題目:設計乙個類,我們只能生成該類的乙個例項。

只能生成乙個例項的類是實現singleton(單例)模式的型別。由於設計模式在物件導向程式設計中起著舉足輕重的作用,面試中經常會出現這樣的面試題。

不好得解決方法一:只適用於單執行緒環境

public sealed class singleton

private static singleton instance = null;

public static singleton instance

}}

不好的解法二:雖然在多執行緒環境中能工作但是工作效率不高

public sealed class singleton

private static readonly object syncobj = new object();

private static singleton instance = null;

public static singleton instance

return instance;

} }}

可行的解法:加同步鎖前後兩次判斷例項是否已存在

public sealed class singleton

private static readonly object syncobj = new object();

private static singleton instance = null;

public static singleton instance

} return instance;

}}

public sealed class singleton

private static singleton instance = new singleton();

public static singleton instance

}}

public sealed class singleton		

public static singleton instance

} class nested

insternal static readonly singleton instance = new singleton();

}}

請閱讀這篇部落格。博主詳細講解了23種設計模式。

面試題2 實現Singleton模式

題目 設計乙個類,我們只能生成該類的乙個例項 考察點 單例模式 知識點 主要介紹兩種 懶漢式 餓漢式單例。單例模式有以下特點 1.單例類只能有乙個例項。2.單例類必須自己建立自己的唯一例項。3.單例類必須給所有其他物件提供這一例項。單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例...

面試題2 實現Singleton模式

實現singleton模式 要求熟練掌握 單例模式的要求 類在記憶體中只能有乙個例項 1.該物件不能是全域性物件或者棧物件 2.該物件是乙個堆物件 靜態成員函式與普通成員函式的區別 單例模式的實現步驟 1.將建構函式私有化 2.在類中定義乙個靜態的指標物件,並在類外初始化為空 3.定義乙個返回值為類...

面試題2 實現Singleton模式

題目描述 設計乙個類,我們只能生成該類的乙個例項。解決方案 1.只適用於單執行緒環境 單執行緒環境下可以正常工作。但是在多執行緒環境下,如果兩個執行緒同時判斷到instance為null,那麼這兩個執行緒都會建立乙個例項,此時的singleton就不滿足單例模式的要求了。1 public seale...