Ho alcune enormi classi di oltre 2k righe di codice (e in crescita) che vorrei refactoring se possibile, per avere un design più leggero e pulito.
Il motivo per cui è così grande è principalmente perché queste classi gestiscono un insieme di mappe a cui la maggior parte dei metodi deve accedere e i metodi sono molto collegati tra loro.
Faccio un esempio molto concreto: ho una classe chiamata Server
che gestisce i messaggi in arrivo. Ha metodi come joinChatroom
, searchUsers
, sendPrivateMessage
, ecc Tutti questi metodi di manipolare le mappe, come users
, chatrooms
, servers
, ...
Forse sarebbe bello se potessi avere una classe che gestisse i messaggi riguardanti le Chatroom, un'altra che trattasse tutto degli Utenti, ecc. Ma il problema principale qui è che ho bisogno di usare tutte le mappe nella maggior parte dei metodi. Ecco perché per ora sono tutti attaccati alla Server
classe in quanto si basano tutti su queste mappe comuni e i metodi sono molto collegati tra loro.
Avrei bisogno di creare una classe Chatroom, ma con riferimento a ciascuno degli altri oggetti. Utenti di una classe di nuovo con un riferimento a tutti gli altri oggetti, ecc.
Sento che avrei fatto qualcosa di sbagliato.