單例模式也稱為單件模式、單子模式,可能是使用最廣泛的設計模式。其意圖是保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點,該例項被所有程式模組共享。
單例模式要做如下事情:
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 單...