Às vezes, ouço dizer que ter muitas classes de "gerente" no design do seu programa é um cheiro de código e adiciona uma camada desnecessária de complexidade. Para mim, faz sentido que as pessoas queiram usar classes de gerente para manipular e controlar objetos de um contexto que faça sentido para elas, mas descobrir como fazer uma solução funcionar sem elas pode ser confuso.
Devemos realmente evitar as classes de gerente o máximo possível? Além disso, quais artigos / artigos devo ler sobre como implementar uma solução alternativa para casos gerais / comuns em que esses gerentes podem ser removidos?