Где и как использовать вложенные классы? [Дубликат]

На этот вопрос уже есть ответ здесь:

Почему / когда вы должны использовать вложенные классы в .net? Или ты не должен? 13 ответов

Я думаю, что если класс будет создан только в другом классе, так что будет правильным использовать его, вложенный в этот класс. Думаю, это поможет нам хорошо спроектировать. Когда я смотрю на свой проект, я почти никогда не видел такой вложенной структуры. Но если я попытаюсь использовать вложенные классы, на этот раз у меня возникнут другие вопросы. Например,

У меня есть класс Board, классы Move, такие как ShortCastle, LongCastle, EnPassant, Promote и Pieces, такие как Pawn, Queen, Rook, Knight и т. Д. Так что классы Board будут создавать экземпляры классов Piece, а классы Piece - классы Move. Для хорошего дизайна класс продвижения Содействия должен быть вложен в Пешку, потому что только пешка может продвигать себя. Короткие и длинные Замки должны быть вложены в Короля, потому что только король может иметь такие типы ходов.

Попытка поместить все классы Piece в класс Board не выглядит хорошим дизайном, потому что класс 8-9 будет внутри класса Board, и это действительно раздражает, если один файл класса Board будет слишком большим и трудно читаемым. Я предпочитаю хранить каждый класс фигур в другом. файл. Хорошо, что мы можем создать частичный класс Board, но разве это не раздражает 8-9 Файлы классов Partial Board будут содержать каждый класс частей? Лучше не делать их вложенными? То же самое с Pieces Создать еще один частичный файл Piece только для другого класса типа Move? Если вложенный класс просто занимает небольшое место, так что это не будет проблемой, но если потребуется много методов?

Ответы на вопрос(5)

Ваш ответ на вопрос