Banyak orang mengatakan hal-hal seperti "kelas tidak boleh lebih besar dari kepala Anda".
Namun, saya baru saja berpartisipasi dalam diskusi dengan beberapa programmer kelas dunia yang sangat hebat mengenai hal ini. Saya sudah membicarakannya dengan salah satu Naked Objects guys. Sejauh yang kami tahu, kadang-kadang, ini terjadi, dan tidak ada banyak cara untuk mengatasinya.
Namun, biasanya, satu kelas di mana hal ini terjadi adalah objek domain yang mewakili elemen mendasar dari domain Anda - Akun untuk perbankan, Penjualan untuk ritel, dll. Jika Anda menemukan hal itu terjadi pada kelas lain juga, Anda mungkin ingin mempertimbangkan tanggung jawab kelas itu. Berikut tips saya:
- Jika itu disebut "Manajer", "Pembantu" atau "Layanan", kemungkinan itu terlalu besar. Setelah Anda benar-benar mengetahui apa tanggung jawab kelas seharusnya, Anda akan merasa lebih mudah untuk mendelegasikan tanggung jawab lainnya.
- Jika itu disebut "Controller", itu harus bertanggung jawab untuk mengendalikan interaksi antara sekelompok kelas lain ... dan tidak ada yang lain.
- Jika itu melewati data dan pesan antara node fisik yang berbeda maka baik itu harus berurusan dengan mengkonversi pesan tertentu ke bentuk serial, atau menangani mekanisme transfer. Misalnya, Anda mungkin memiliki satu kelas yang mengubah Transaksi Bank ke XML, dan kelas lain yang mengirim XML itu melalui HTTP.
- Jika melewati acara antar modul yang berbeda dalam suatu aplikasi, maka itu harus bertanggung jawab untuk memberi tahu pendengar ketika suatu peristiwa dinaikkan, dan tidak ada yang lain.
Sebagai aturan praktis, jika terlalu besar, lihat apakah Anda dapat mendelegasikan tanggung jawab ke kelas lain, dan jika Anda tidak bisa, itu mungkin baik-baik saja.