私のプロジェクトでは、特定の理由により、マネージャクラスによってインスタンスが管理される一連のクラスがあります。C++:クラスクラスマネージャの関係についてわからない
例は次のようになります
をアクティブ音声をミックスCsoundファイル - 単一音声
CSoundManagerを抽象化 - Csoundファイルの友人、 は Csoundファイルインスタンスを作成するためのファクトリメソッドを提供するには、一緒に
また、CFont、CFontManager(名前ごとのフォントアクセス用)、CSprite、CSpriteManager(各フレームの描画用)など。すでに
ここに私の最初の質問:
- が、私はデザインパターンという名前の特定をやっていますか?
- ほとんどの場合、何らかの理由で悪い考えですか?はいの場合、なぜですか?
その後、私は自分自身を求めている:
- オブジェクトが作成および破棄すべきか?
new
で、または対応するマネージャークラスのメソッドによってのみ、スタック上に作成することができますか?
(破壊のためにも:。delete myFont;
対FontManager.DestroyFont(myFont);
)
クラス名の先頭に「C」を付けないでください。 Yuk。 –
もっと良い質問は「すべてがCで始まるのはなぜですか?名前空間とは対照的に、多くのプロジェクトでこれが行われています。私が考えることができる最大の例はUnreal Engineで、これは(ほぼ)すべてに「Un」を付加しています。しかし、これは、いくつかのクラス名を大声で 'UnFortunateConsequences'を読み込むようにします... – James
Microsoftは、MFCクラスについても同じことをします。彼らはまた、たとえば、CFontクラスを持っています。これはあなた自身のクラスでCを使用しない理由の一つです! –