Ich habe einige große Klassen mit mehr als 2 KB Codezeilen (und mehr), die ich nach Möglichkeit umgestalten möchte, um ein leichteres und übersichtlicheres Design zu erhalten.
Der Grund, warum es so groß ist, liegt hauptsächlich darin, dass diese Klassen eine Reihe von Zuordnungen verarbeiten, auf die die meisten Methoden zugreifen müssen, und dass die Methoden eng miteinander verbunden sind.
Ich werde ein sehr konkretes Beispiel geben: Ich habe eine Klasse namens Server
, die eingehende Nachrichten behandelt. Es verfügt über Methoden wie joinChatroom
, searchUsers
, sendPrivateMessage
usw. Alle diese Methoden manipulieren die Karten wie users
, chatrooms
, servers
, ...
Vielleicht wäre es schön, wenn ich eine Klasse haben könnte, die Nachrichten in Bezug auf Chatrooms behandelt, eine andere, die sich mit Benutzern befasst, usw., aber das Hauptproblem dabei ist, dass ich in den meisten Methoden alle Karten verwenden muss. Das ist der Grund, warum sie im Moment alle in der Server
Klasse stecken bleiben, da sie sich alle auf diese gemeinsamen Maps verlassen und die Methoden sehr eng miteinander verbunden sind.
Ich würde eine Klasse Chatrooms erstellen müssen, aber mit einem Verweis auf jedes der anderen Objekte. Eine Klasse Benutzer wieder mit einem Verweis auf alle anderen Objekte usw.
Ich habe das Gefühl, ich würde etwas falsch machen.