ConstructiCat Logo
CodeBust.
Browse section ▾

Moving Features between Objects.

Antipatterns Mascot
Extraer clase

Problema: Cuando una clase hace el trabajo de dos, surge la incomodidad. Solución: En su lugar, crea una clase nueva y coloca en ella los campos y métodos responsables de la funcionalidad correspondiente.

001
Refactoring Mascot
Ocultar Delegado

Problema: El cliente obtiene el objeto B a partir de un campo o método del objeto A. Después, el cliente llama a un método del objeto B. Solución: Crea un nuevo método en la clase A que delegue la llamada al objeto B. Ahora el cliente no conoce la clase B ni depende de ella.

002
Antipatterns Mascot
Incorporar clase

Problema: Una clase casi no hace nada y no es responsable de nada, y no se planean responsabilidades adicionales para ella. Solución: Mueve todas las características de la clase a otra.

003
Architectural Patterns Mascot
Introducir un método externo

Problema: una clase de utilidad no contiene el método que necesitas y no puedes añadirlo a la clase. Solución: añade el método a una clase cliente y pásale como argumento un objeto de la clase de utilidad.

004
Antipatterns Mascot
Introducir extensión local

Problema: una clase de utilidad no contiene algunos métodos que necesitas, pero no puedes añadir esos métodos a la clase. Solución: crea una clase nueva que contenga los métodos y conviértela en hija o en envoltorio (wrapper) de la clase de utilidad.

005
Refactoring Mascot
Mover campo

Problema: Un campo se utiliza más en otra clase que en la suya propia. Solución: Crea un campo en una nueva clase y redirige hacia él a todos los usuarios del campo antiguo.

006
Antipatterns Mascot
Mover método

Problema: un método se usa más en otra clase que en la suya propia. Solución: crea un método nuevo en la clase que más lo usa y traslada allí el código del método antiguo. Convierte el código del método original en una referencia al nuevo método de la otra clase, o bien elimínalo por completo.

007
Code Smells Mascot
Eliminar intermediario

Problema: Una clase tiene demasiados métodos que simplemente delegan en otros objetos. Solución: Elimina estos métodos y obliga al cliente a llamar directamente a los métodos finales.

008