オブジェクト指向システムの設計 170 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0668デフォルトの名無しさん
2016/06/05(日) 20:44:16.06ID:PAgdOZpu> WalkのコンテクストではDogを主語として扱うことに意味はあるのかもしれない。
> しかしFightのコンテクストではDogあるいはCatを主語として扱うことに対する深い意味はないだろう。
こんなこと言ったのに、↓主語として扱う意味を見つけてしまったなぁw
> もっとも、Fighterがwizのように何人も生成できて、キャラクター生成の度に、monsterknowledgeを初期化して生成する
> っていうのはいかにもオブジェクトらしいけどな
結局オブジェクト指向としての設計の話をするならば、これのほうが正しいんだよ。
> Dog.Fight(Cat);
> Cat.Fight(Dog);
ただし設計とは別の観点、つまり「メンテナンス性のために戦うアルゴリズムだけを分離したい」となれば、
それは、アルゴリズムだけを収録したクラスを作って(あれ?将棋でも同じ話しなかったっけ?w)
それを入れ替えられるようにすればいい。それは上記の設計を変えずにできる。
設計は正しいままで、アルゴリズムを呼び出すようにする。
■ このスレッドは過去ログ倉庫に格納されています