¿Dónde y cómo usar clases anidadas? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué / cuándo deberías usar clases anidadas en .net? ¿O no deberías? 13 respuestas

Estoy pensando que si una clase se instanciará solo en otra clase, entonces es correcto usarla anidada en esa clase. Creo que esto nos ayudará a un buen diseño. Cuando miro mi proyecto, casi nunca he visto tal estructura anidada. Pero si trato de anidar clases, esta vez aparecen otras preguntas en mi mente. Por ejemplo

Tengo clases de tablero, clases de movimiento como ShortCastle, LongCastle, EnPassant, Promover y piezas como Pawn, Queen, Rook, Knight, etc. Por lo tanto, está claro que las clases de tablero crearán instancias de las clases Piece y las clases de Piece crearán instancias de las clases Move. Para un buen diseño, la clase de movimiento de promoción debe estar anidada de peón porque solo el peón puede promocionarse a sí mismo. Los castillos cortos y largos deben estar anidados de rey porque solo el rey puede tener ese tipo de movimientos.

Intentar poner todas las clases de piezas en la clase de tablero no tiene buen aspecto porque la clase 8-9 estará dentro de la clase de tablero y realmente molestará que un archivo de clase de tablero sea demasiado grande y difícilmente legible. Prefiero mantener cada clase de pieza en otra archivo. Es bueno que podamos crear una clase de tablero parcial, pero aún así no es molesto 8-9 ¿Los archivos de clase de tablero parcial contendrán cada clase de pieza? ¿Es mejor no hacerlos anidados? Lo mismo acerca de las piezas ¿Crear otro archivo de pieza parcial solo para otra clase de tipo Move? Si la clase anidada solo ocupa un espacio pequeño para que no haya ningún problema, pero si requiere muchos métodos.

Respuestas a la pregunta(5)

Su respuesta a la pregunta