デザインパターン

design-pattern.png

用語

オペレーション
要求=メッセージ

デザインパターンの分類

生成 構造 振る舞い
クラス factory-method adapter Interpreter template-method
オブジェクト abstract-factory proxy chain-of-responsibility memento
builder bridge command observer
prototype composite iterator state
singleton decorator mediator strategy
visitor
Flyweight

範囲について

クラス オブジェクト
クラスとサブクラス間の関連を扱う オブジェクト間の関連を扱う
コンパイル時に確定され静的 実行時に変更でき、動的

目的について

生成 構造 振る舞い
クラス オブジェクトの生成の一部をサブクラスを委ねる クラスを構成するために継承を利用する アルゴリズムや制御の流れを記述するために継承を利用する
オブジェクト オブジェクトの生成の一部を他のオブジェクトに委ねる オブジェクトをまとめる方法を記述する 1つのオブジェクトのみでは遂行できないタスクを実行するため、オブジェクトのグループがどのように協調するかを記述する

デザインパターンは、他の開発者との共有ボキャブラリを与えてくれる。
この語彙を習得すれば、他の開発者とより簡単にやり取りができ、パターンを知らない開発者にパターンの学習を始める気を起させることができます。\nまた、詳細なオブジェクトレベルではなく、パターンレベルで考えるようになることで、アーキテクチャに関する考えを高めることにもなります。[2]

参考URL

ゲームを例えに説明してあってよさげ


headfirstデザインパターンのサンプルコード

悩み

  • glewInitしたあとじゃないと、これをしちゃだめ!みたいな仕組みないかな。
  • やっぱり行列ごとにオブジェクトをぶらさげるツリー形式にしたいな。2回も行列の掛け算しちゃう時があるから
Bibliography
3. Game Programming Patterns (English Edition)….ゲームプログラミングでデザインパターンをどう取り入れるのかを、著者の経験を交えて実践的に書いてあります

サポートサイト Wikidot.com