在我的項目中,我有一系列類,其中的實例由某些經理類進行管理,出於具體原因。C++:不確定班級經理的關係
例子是:
CSound的 - 文摘單個聲
CSoundManager - CSound的的朋友, 提供用於創建 CSound的實例工廠方法,混合活性聲音 一起
另外:CFont,CFontManager(用於字體訪問名稱),CSprite,CSpriteManager(用於繪製每一幀)等等。
這裏我的第一個問題已經:
- 是我在做什麼具體的命名設計模式?
- 大多數情況下,無論出於何種原因,這是一個壞主意嗎?如果是,爲什麼?
然後,我問自己:
- 應該如何創建和銷燬的對象?我是否應該允許在堆棧中創建它們,或者直接使用
new
,或者只使用相應的管理器類的方法創建它們?
(也毀滅:delete myFont;
與FontManager.DestroyFont(myFont);
)
不要在班級名稱的開頭放置「C」。育。 – 2011-03-08 18:10:39
更好的問題是'爲什麼一切都以C開頭?'很多項目都是這樣做的,而不是命名空間。我能想到的最大的例子是虛幻引擎,它以'Un'爲前提(幾乎)所有東西。但是,這確實會使朗讀某些類名稱具有'UnFortunateConsequences' ... – James 2011-03-08 18:19:41
Microsoft對它們的MFC類也做同樣的事情。例如,他們也有CFont類。這是在你自己的課堂上不使用C的好理由! – 2011-03-08 18:42:05