Onde e como usar as classes aninhadas? [duplicado]
Esta pergunta já tem uma resposta aqui:
Por que / quando você deve usar classes aninhadas no .net? Ou não deveria? 13 respostasEstou pensando que, se uma classe será instanciada apenas em outra classe, é correto usá-la aninhada nessa classe. Acho que isso nos ajudará a um bom design. Quando olho para o meu projeto, quase nunca vi essa estrutura aninhada. Mas se eu tentar aninhar classes, desta vez, outras perguntas aparecerão em minha mente.
Eu tenho classe Board, classes Move como ShortCastle, LongCastle, EnPassant, Promova e Pieces como Peão, Rainha, Torre, Cavaleiro etc. Portanto, é claro que as classes Board instanciam as classes Piece e as classes Piece instanciam as classes Move. Para um bom design, a classe de movimento Promover deve ser aninhada de Peão, porque apenas o peão pode se promover. Castelos curtos e longos devem ser aninhados de Rei, porque apenas o rei pode ter esse tipo de movimento.
Tentar colocar todas as classes Piece na classe Board não parece ter um bom design, pois a classe 8-9 estará dentro da classe Board e será realmente irritante um arquivo da classe Board ser muito grande e dificilmente legível. Prefiro manter cada classe da peça em outra Arquivo. É bom podermos criar classe parcial do Conselho, mas ainda não é irritante 8-9 arquivos de classe do Conselho Parcial conterão cada classe de peça? É melhor não fazê-los aninhados? O mesmo sobre peças Crie outro arquivo parcial da peça apenas para outra classe de tipo Mover? Se a classe aninhada ocupa apenas um espaço pequeno, não haverá nenhum problema, mas se são necessários muitos métodos?