クラスが別のクラスでのみインスタンス化される場合は、そのクラスにネストして使用するのが正しいと考えています.これは良い設計に役立つと思います.私のプロジェクトを見ると、そのようなネスト構造はほとんど見たことがありません.しかし、クラスをネストしようとすると、今度は別の質問が頭に浮かびます.たとえば
Board クラス、ShortCastle、LongCastle、EnPassant、Promote などの Move クラスと、Pawn、Queen、Rook、Knight などの Pieces があります。したがって、Board クラスが Piece クラスをインスタンス化し、Piece クラスが Move クラスをインスタンス化することは明らかです。優れた設計では、プロモート ムーブ クラスはポーンのネストにする必要があります。これは、ポーンだけが自身をプロモートできるためです。短いキャッスルと長いキャッスルはキングのネストにする必要があります。キングだけがそのようなタイプのムーブを持つことができるからです。
すべての Piece クラスを Board クラスに入れようとすると、8 ~ 9 クラスが Board クラス内に配置され、1 つの Board クラス ファイルが大きすぎて読みにくくなるため、見栄えがよくありません。ファイル。部分的なボード クラスを作成できるのは良いことですが、それでも、8 ~ 9 個の部分的なボード クラス ファイルが各ピース クラスを保持するのは面倒ではありませんか? それらを入れ子にしない方が良いですか?Pieces についても同じです 別の Move タイプ クラス用に別の部分的な Piece ファイルを作成しますか? ネストされたクラスが小さなスペースしかとらない場合は問題ありませんが、多くのメソッドが必要な場合は?