Mucha gente dice cosas como "una clase nunca debería ser más grande que tu cabeza".
Sin embargo, acabo de participar en una discusión con algunos programadores realmente excelentes de clase mundial sobre este mismo tema. Lo he hablado con uno de los chicos de Objetos Desnudos. Por lo que podemos decir, a veces, esto sucede, y no hay mucha forma de evitarlo.
Sin embargo, normalmente, la única clase a la que sucede esto es un objeto de dominio que representa el elemento fundamental de su dominio: una cuenta para la banca, una venta para venta minorista, etc. Si descubre que también le sucede a otras clases, probablemente querer considerar la responsabilidad de esa clase. Aquí están mis consejos:
- Si se llama "Administrador", "Ayudante" o "Servicio", lo más probable es que sea demasiado grande. Una vez que realmente determine cuál debería ser la responsabilidad de una clase, le resultará más fácil delegar las otras responsabilidades.
- Si se llama "Controlador", debería ser responsable de controlar la interacción entre un montón de otras clases ... y nada más.
- Si se trata de pasar los datos y los mensajes entre diferentes nodos físicos entonces o bien se debe hacer frente a la conversión de un mensaje específico a una forma serializada, o que maneja el mecanismo de transferencia. Por ejemplo, puede tener una clase que convierta una Transacción bancaria a XML y otra clase que envíe ese XML a través de HTTP.
- Si está pasando eventos entre diferentes módulos en una aplicación, entonces debería ser responsable de informar a los oyentes cuando se genera un evento, y nada más.
Como regla general, si es demasiado grande, vea si puede delegar cualquier responsabilidad a otra clase, y si no puede, probablemente esté bien.