「【GoF】デザインパターン 6at TECH
「【GoF】デザインパターン 6 - 暇つぶし2ch235:デフォルトの名無しさん
07/02/24 17:07:48
ちょっと皆さんに助言願いたい事があります。
例えば、ゲームプログラムなんですが、
あるキャラクタークラスYがあったとしてキャラクタークラスは内部に
AI処理を担当するクラスZをコンポジションでもっていたとします。

で、AIのタイプにはいくつかあって(タイプA/B/C)、それぞれの
タイプにも、細かく引数によってパラメータの指定ができるとします。

AI担当クラスZはA/B/Cの抽象クラスか、あるいはA/B/Cをコンポジションで
持っていてもまぁなんでもいいのですが、

他のクラス(ゲーム進行管理クラスなど)からそのキャラクターのAIの動作を
変更するために、例えばAI処理をタイプBに変更、そしてB特有のパラメータを設定できるとします。

こういう事を実現するために、現在はクラスZを持っているキャラクタークラスにも、
タイプA,B,Cいずれの処理に切り替えるメンバ関数、あるいはそれぞれのタイプ別にパラメータを
設定する独立したメンバ関数を設定しています。
でもこういう事をすると、AIのタイプを増やすたびにキャラクタークラスにもそれに応じた
メンバ関数を追加する手間が必要になってしまいます。

もっとスマートなやり方は無いものでしょうか?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch