Saya memiliki beberapa kelas besar lebih dari 2k baris kode (dan terus bertambah) yang saya ingin refactor jika mungkin, untuk memiliki beberapa desain yang lebih ringan dan bersih.
Alasannya begitu besar terutama karena kelas-kelas ini menangani satu set peta yang sebagian besar metode perlu akses, dan metode-metode tersebut sangat terhubung satu sama lain.
Saya akan memberikan contoh yang sangat konkret: Saya memiliki kelas yang disebut Server
yang menangani pesan masuk. Ini memiliki metode seperti joinChatroom
, searchUsers
, sendPrivateMessage
, dll Semua metode ini memanipulasi peta seperti users
, chatrooms
, servers
, ...
Mungkin akan menyenangkan jika saya dapat memiliki kelas yang menangani pesan tentang Ruang Chat, yang lain menangani semua tentang Pengguna, dll. Tetapi masalah utama di sini adalah bahwa saya perlu menggunakan semua peta di sebagian besar metode. Itu sebabnya untuk saat ini mereka semua menempel di Server
kelas karena mereka semua bergantung pada peta umum ini dan metode yang sangat terhubung satu sama lain.
Saya perlu membuat ruang obrolan kelas, tetapi dengan referensi ke masing-masing objek lainnya. Pengguna kelas lagi dengan referensi ke semua objek lain, dll.
Saya merasa akan melakukan sesuatu yang salah.