Substituir Delegação por Herança.
Uma classe contém muitos métodos simples que delegam a todos os métodos de outra classe.
Faça a classe herdar do delegado, o que torna os métodos delegadores desnecessários.
##Example
##Why Refactor
A delegação é uma abordagem mais flexível que a herança, já que permite mudar como a delegação é implementada e colocar outras classes ali também. Mesmo assim, a delegação deixa de ser benéfica se você delega ações a apenas uma classe e a todos os seus métodos públicos.
Nesse caso, ao substituir a delegação por herança, você limpa a classe de um grande número de métodos delegadores e se poupa de precisar criá-los para cada novo método da classe delegada.
##Benefits
- Reduz o tamanho do código. Todos esses métodos delegadores deixam de ser necessários.
##How to Refactor
-
Faça a classe ser uma subclasse da classe delegada.
-
Coloque o objeto atual em um campo que contém uma referência ao objeto delegado.
-
Exclua um a um os métodos de delegação simples. Se seus nomes eram diferentes, use Renomear Método para dar a todos os métodos um único nome.
-
Substitua todas as referências ao campo delegado por referências ao objeto atual.
-
Remova o campo delegado.