Eliminar intermediario.
Una clase tiene demasiados métodos que simplemente delegan en otros objetos.
Elimina estos métodos y obliga al cliente a llamar directamente a los métodos finales.
##Example
##Why Refactor
Para describir esta técnica, usaremos los términos de Ocultar delegado, que son:
-
Servidor es el objeto al que el cliente tiene acceso directo.
-
Delegado es el objeto final que contiene la funcionalidad que el cliente necesita.
Hay dos tipos de problemas:
-
La clase servidora no hace nada por sí misma y simplemente genera complejidad innecesaria. En este caso, reflexiona sobre si esta clase es realmente necesaria.
-
Cada vez que se añade una nueva característica al delegado, necesitas crear un método delegante para ella en la clase servidora. Si se realizan muchos cambios, esto resultará bastante tedioso.
##How to Refactor
-
Crea un getter para acceder al objeto de la clase delegada desde el objeto de la clase servidora.
-
Sustituye las llamadas a los métodos delegantes de la clase servidora por llamadas directas a los métodos de la clase delegada.