Wo und wie verwende ich verschachtelte Klassen? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Warum / wann sollten Sie verschachtelte Klassen in .net verwenden? Oder solltest du nicht? 13 answersIch denke, dass, wenn eine Klasse nur in einer anderen Klasse instanziiert wird, es richtig ist, sie in dieser Klasse verschachtelt zu verwenden. Ich denke, dies hilft uns beim guten Design. Wenn ich mir mein Projekt anschaue, habe ich so eine verschachtelte Struktur fast nie gesehen Aber wenn ich versuche, Klassen zu verschachteln, tauchen dieses Mal andere Fragen in meinem Kopf auf. Zum Beispiel
Ich habe Board-Klassen, Move-Klassen wie ShortCastle, LongCastle, EnPassant, Promote und Teile wie Pawn, Queen, Rook, Knight usw. Es ist also klar, dass Board-Klassen Piece-Klassen und Piece-Klassen Move-Klassen instanziieren. Für ein gutes Design sollte die Move-Klasse "Fördern" von "Bauer" verschachtelt sein, da nur Bauer sich selbst fördern kann. Kurze und lange Burgen sollten von "König" verschachtelt sein, weil nur König solche Bewegungen ausführen kann.
Der Versuch, alle Teilklassen in die Board-Klasse aufzunehmen, sieht nicht gut aus, da die 8-9-Klasse in der Board-Klasse enthalten ist und es wirklich ärgerlich ist, wenn eine Board-Klassendatei zu groß und kaum lesbar ist. Ich bevorzuge, jede Teilklasse in der Board-Klasse zu belassen eine andere Datei. Gut, dass wir eine Teil-Board-Klasse erstellen können, aber ist es trotzdem nicht ärgerlich, dass 8-9 Teil-Board-Klassen-Dateien jede Stückklasse enthalten? Ist es besser, sie nicht zu verschachteln? Dasselbe gilt für Teile. Eine weitere Teilstückdatei nur für eine andere Move-Typklasse erstellen? Wenn verschachtelte Klassen nur wenig Platz beanspruchen, ist das kein Problem, aber wenn es viele Methoden braucht?