C 單例模式的簡單分析

2021-10-12 13:02:05 字數 1072 閱讀 9912

單例模式也稱為單件模式、單子模式,可能是使用最廣泛的設計模式。其意圖是保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點,該例項被所有程式模組共享。

單例模式要做如下事情:

1.不能通過建構函式構造,否則就能夠例項化多個。建構函式需要私有宣告

2.保證只能產生乙個例項

適用場景:

1.需要生成唯一序列的環境

2.需要頻繁例項化然後銷毀的物件。

3.建立物件時耗時過多或者耗資源過多,但又經常用到的物件。

4.方便資源相互通訊的環境

接下來我們以目前比較火的moba遊戲為物件進行分析,他需要構建乙個最主要的類:英雄類,它的屬性有:血量,等級,攻擊力,防禦力,暴擊加成,物理加成,法術加成等等,人物之間的攻擊我們以最簡單的方法:攻擊傷害=(攻擊力-防禦力)*各種加成,來計算,我們不可能在人物每攻擊一次就呼叫這2個物件來計算,這樣的話,如果我要修改傷害的加成,**的可再次利用性不高,這時候我們需要新建乙個傷害類(只產生傷害量)做為子類,來計算傷害量。,這樣我下次修改的時候,就只需要在傷害類這個類中進行修改,大大減少了修改時間,提高了**的再用率。

類圖為:

**實現為:

//c++單列模式的簡單實現

class

herodamage

//構造方法實現

herodamage::

herodamage()

herodamage::

~herodamage()

//初始化靜態成員

herodamage* herodamage::instance =

new herodamage;

herodamage* herodamage::

getinstance()

//getnum_damage函式

float herodamage::

getnum_damage()

本內容純粹屬於個人理解,如有錯誤,感謝大家的指出,謝謝!

單例模式的簡單分析

第一次寫東西,文體形式槽點多多,歡迎指正。單例模式是設計模式中比較簡單的乙個,學習起來比較容易理解。下面開始聊聊各種場景下的單例模式。單例模式的定義 乙個類有且僅有乙個例項,並且自行例項化向整個系統提供。單例模式的要素 1.私有的靜態的例項物件 2.私有的建構函式 保證在該類外部,無法通過new的方...

簡單論述之單例模式分析

問題 1.什麼是單例模式?單例模式是軟體設計模式中的一種,它的核心結構只包含乙個被稱為單例的特殊類,通過單例模式保證系統中乙個類只有乙個例項。對於系統中的許多類來說,只能有乙個例項。比如 windows系統資源管理器 如果不對物件唯一化,將會彈出多個視窗 1 視窗內容完全不一致 記憶體資源浪費 2 ...

c 單例模式簡單例子

using system using system.collections.generic using system.linq using system.text using system.threading.tasks 單例模式確保乙個類只有乙個例項,並提供乙個全域性訪問點 namespace 單...