Remover Intermediário.
Uma classe tem métodos demais que simplesmente delegam para outros objetos.
Exclua esses métodos e force o cliente a chamar os métodos finais diretamente.
##Example
##Why Refactor
Para descrever esta técnica, usaremos os termos de Esconder Delegação, que são:
-
Servidor é o objeto ao qual o cliente tem acesso direto.
-
Delegado é o objeto final que contém a funcionalidade necessária ao cliente.
Há dois tipos de problemas:
-
A classe-servidora não faz nada por si só e simplesmente cria complexidade desnecessária. Nesse caso, reflita se essa classe é realmente necessária.
-
Toda vez que uma nova funcionalidade é adicionada ao delegado, você precisa criar um método delegador para ela na classe-servidora. Se muitas mudanças forem feitas, isso será bastante cansativo.
##How to Refactor
-
Crie um getter para acessar o objeto da classe-delegada a partir do objeto da classe-servidora.
-
Substitua as chamadas aos métodos delegadores na classe-servidora por chamadas diretas aos métodos da classe-delegada.