デザインパターン

BRIDGEパターン

「BRIDGE=橋」橋パターンです。詳しい説明は後で。とりあえず、書いてみる。 // 架空のゲームハードのシステムを切り替えるたとえ// システムベース class SystemBase { public: SystemBase(){} virtual ~SystemBase(){} // ピュアなメンバ関数ちゃん virtua…

Mementoパターン

「Memento=記念品」という事で、記念品パターンです。って何のこっちゃですよね。Mementパターンは、カプセル化を保ったままクラスオブジェクトの状態をセーブして復元するためのパターンです。書いてみよ // キャラ class Chara { public: Chara() { m_Hp =…

Commandパターン

「コマンド=命令」という事で、命令をクラスとして扱うためのパターンです。コマンドクラス生成をして、そのクラスが司るコマンド(命令)を実行する。ただそれだけのことです。書いてみよかー // コマンド基底クラス class CommandBase { public: CommandBase…

Facadeパターン

「Facade=正面」複雑な処理を一まとめにする場合に活用するデザインパターンclass Facade { public: void Process() { // こんな単純なものじゃないけど // ようは複数クラス間の複雑な処理を // まとめるための関数を持ってるクラス // をファサードクラス…

proxyパターン

「proxy=代理」「あるクラスの代理になるクラス」を用意するためのパターン。代理クラスは何らかの形で本人クラスを特定できる情報を持っているべき。本人クラスインスタンスへのポインタなんかが一般的。つべこべ言わず、いつもどおり書いてみる。// ドライ…

Prototypeパターン

「Prototype = 雛形」自身のプロパティを受け継いだクラスインスタンスを生成するクローン関数を保持させることで実現する。もちろん、生成に関わるデザインパターン。// クローン基底 class PrototypeBase { public: virtual PrototypeBase* Clone(); };// …

Singletonパターン

プログラム中にクラスのインスタンス(オブジェクト)が1つしかないことを保証するためのパターン。仕事中にもちらほら見るのう。「あ、これはシングルトンかーならインスタンスゲットして・・・」のような やりとりもよくやる。実装方法はいろいろあるが、…

Iteratorパターン

振る舞いに関するデザインパターン。「Iterate=反復する」にorをつけて「Iterator」。意味は反復子。対象コンテナはなんであれ、アクセス方法を統一・独立させることにより、内部仕様に依存しない反復子を定義するためのパターン。らしいです。 まぁとりあえ…

AbstractFactoryパターン

「ファクトリ=工場」ということで、生成に関するデザインパターン。 newを生身で使うのではなく、生成機能を持った関数を使う。(ファクトリーの由来) 効果としては、生成関数内を書き換えるだけで生成物の一括変更を行うことが出来たり、関数に引数を与え…

テンプレートメソッドパターン

処理フローは同じ、しかし処理内容が違う場合などに使用する。 例:料理する→(出来上がった料理を)食べる→後片付けするclass TemplateBase { private: virtual void Cook(){} virtual void Eat(){} virtual void Clean(){} public: void Main() { Cook(); …