Muitas pessoas dizem coisas como "uma classe nunca deve ser maior que sua cabeça".
No entanto, acabei de participar de uma discussão com alguns grandes programadores de classe mundial sobre esse assunto. Eu conversei com um dos caras da Naked Objects. Até onde sabemos, às vezes isso acontece, e não há muita maneira de contornar isso.
Normalmente, porém, a única classe na qual isso acontece é um objeto de domínio que representa o elemento fundamental do seu domínio - uma conta para serviços bancários, uma venda para varejo etc. etc. Se você perceber que isso acontece com outras classes também, provavelmente deseja considerar a responsabilidade dessa classe. Aqui estão minhas dicas:
- Se for chamado "Gerente", "Auxiliar" ou "Serviço", é provável que seja muito grande. Depois de descobrir qual deve ser a responsabilidade de uma classe, será mais fácil delegar as outras responsabilidades.
- Se é chamado de "Controller", deve ser responsável por controlar a interação entre várias outras classes ... e nada mais.
- Se ele está passando dados e mensagens entre diferentes nós físicos, em seguida, seja ele deve lidar com a conversão de uma mensagem específica a uma forma seriada, ou ele lida com o mecanismo de transferência. Por exemplo, você pode ter uma classe que converte uma transação bancária em XML e outra classe que envia esse XML por HTTP.
- Se estiver passando eventos entre módulos diferentes em um aplicativo, deve ser responsável por informar os ouvintes quando um evento é gerado e nada mais.
Como regra geral, se for muito grande, verifique se você pode delegar responsabilidades para outra classe e, se não puder, provavelmente está tudo bem.