單例模式,乙個類只能有乙個例項。地球只有乙個。

2021-10-11 05:35:59 字數 624 閱讀 5538

單例設計模式:

單例設計模式就是保證某個類的例項有且只能有乙個不能隨意建立例項。例如:我們只有乙個地球,地球類的例項只能建立乙個。

1、為了阻止類例項的new建立,可以做乙個private的建構函式。

2、既然不能從外部使用new進行例項的建立,就從類內部進行例項的建立,為此可以提供乙個靜態方法和乙個要建立的私有全域性類例項變數。

3、靜態方法實現如下:

/// /// 單例模式

///

public class singlec

/// /// 定義公有方法提供乙個全域性訪問,也可以定義公有屬性來提供全域性訪問

///

///

public static singlec getcinstance()

}}return uniquecinstance;

}}

4、上例中使用了lock鎖,防止多執行緒同時調動時if (uniquecinstance== null)都可以通過,如果都可以就會有兩次例項的建立動作。第乙個if (uniquecinstance== null)是為了一旦例項被建立了就不需要再使用lock阻止因多執行緒導致多個例項出現。

大神們不喜勿噴,僅作為自我學習筆記!!!

單例模式(乙個類只能建立乙個例項)

三個步驟 通過new乙個靜態變數 private static single single new single1 構造方法私有化 private single 新建乙個公共獲取物件的方法 靜態 public static single getintance return 這個物件 一共有七中單例模...

保證乙個類僅有乙個例項 單例模式

場景 微軟的windows xp作業系統,ctrl alt del鍵都會彈出乙個windows任務管理器 這時不關閉這個任務管理器 繼續ctrl alt del鍵還是乙個windows任務管理器。鑑於本人水平有限,上面的場景舉例可能不合適,但是很接近乙個基本的設計模式 單例模式。code is ch...

只能生成乙個例項的類

這次遇到的是乙個c 問題,本著迎難而上精神雖然c 不熟但是盤它就行了。問題如下 用linux編譯c 需要先搭建環境,那就先搭建乙個吧。搭建環境有好多坑,根據以下內容可以完成並且解決各種問題 還有就是4版本以上的,只能用mcs命令編譯 搭建好之後可以開始寫 了,對c 不太熟悉先了解一些基礎概念 1 s...