Ultimamente, comecei a pensar que ter muitas classes de gerente em seu design é uma coisa ruim. A ideia não amadureceu o suficiente para eu apresentar um argumento convincente, mas eis alguns pontos gerais:
Eu achei muito mais difícil para mim entender sistemas que dependem muito de "gerentes". Isso ocorre porque, além dos componentes reais do programa, você também precisa entender como e por que o gerente é usado.
Os gerentes, na maioria das vezes, parecem ser usados para aliviar um problema com o design, como quando o programador não conseguia encontrar uma maneira de criar o programa Just Work TM e tinha que confiar nas classes de gerenciadores para fazer tudo funcionar corretamente.
Claro, os gerentes podem ser bons. Um exemplo óbvio é uma EventManager
das minhas construções favoritas de todos os tempos. : P O que quero dizer é que os gerentes parecem ser usados em excesso a maior parte do tempo e por nenhuma outra razão além de mascarar um problema com a arquitetura do programa.
As classes de gerente são realmente um sinal de arquitetura ruim?
EventManager
é um nome horrível para uma classe. Aparentemente, faz algo com os eventos, mas o que ?
Of course, mangers can be good. An obvious example is an EventManager
explica tudo bem ali. Um mau uso do conceito é uma arquitetura ruim, mas há casos de uso legítimos. O mesmo vale para quase tudo.