>>876
> まず基本は、データとそれを処理する関数なんだよ。これを忘れるな。

元 C/C++ 出身だから良く分かってるよ。

> 現実世界では、シャッフルするのはディーラーだが、
> プログラム時は、ディーラークラスはカードオブジェクトの
> シャッフルメソッドを呼ぶだけで、自分でシャッフルする必要はない。

「ディーラーはシャッフルする」「カードはシャッフルされる」両方とも成立
するからどちらでもいい。

ただ、カードのインスタンスにシャッフルするメソッドを持たせると、
カードクラス内に全カードインスタンスを static で持つ必要が出
てくるだろ。そうなると VM 上で複数の「場」を立てづらい設計に
なるだろ。だからディーラーに持たせたの。ちなみに君の言う
「オブジェクト」ってインスタンスを指してるの?

ちょっと設計を教えてくれよ。カードのシャッフルメソッドの中で、他の
カードインスタンスをどうやって見つけるつもりなんだ? リスト? ここで
想定している実装イメージがいまいち分からん。

> ディーラークラスはまず、全てのカードでカードオブジェクトを初期化する。
> その後、カードオブジェクトのシャッフルメソッドを呼び、
> 抽出メソッドを呼び、プレイヤークラスへカードを引き渡す。
> プレイヤークラスは、カードオブジェクトの挿入メソッドを呼び、
> 必要ならソートメソッドを呼ぶ。

それでも別段違和感はありませんけど。

> > 全カードの存在や状態を意識する設計
> それはおまえの設計だ。

そうだよ。カード采配のモデルに世界のデファクトスタンダードでもあるのか?
あるとしたら現実に添ったオブジェクトの振る舞いと責任分担じゃないのか?

> ディーラークラスやプレイヤークラスや場クラスは、
> 自分のカードオブジェクトだけ考えればよい。
> カードクラスも同じだ。
> 全てのクラスが、全カードの存在など意識しない。
> カードに対する操作は、全てカードオブジェクトにまかせればよい。
> カードに対する操作は、すべてカードクラスに実装する。
> 理解できたか?

その実装はカードというのファットクラスが出来上がるだろう。カードがゲーム
全体を実装するなら、それは汎用的な設計といえないと思うがどうよ。

> 最後に、おまえ厨房すぎる。
> 本ばかり読んでないで、実際にプログラムしろ。
> プログラム経験が足りないんだよ。

あほ、月百二十万契約のフリーだ。君の言う「現実模倣」をモデルにして
数十〜数百億のプロジェクト 5 個こなしてるよ。

っていうかほとんど趣味レベルの設計の良し悪しなんかどうでもいい。
何で「現実模倣」をモデルにした設計がダメなのかぜひ聞きたい。