Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Divergent Change code smell #1

Open
ghost opened this issue Jan 3, 2021 · 0 comments
Open

Divergent Change code smell #1

ghost opened this issue Jan 3, 2021 · 0 comments

Comments

@ghost
Copy link

ghost commented Jan 3, 2021

Divergent Change

Existe una clase Artefacto con un atributo llamado categoría, en la captura de pantalla que corresponde a la clase GUI se puede observar las validaciones que se realizan para según eso determinar el texto que debe ser configurado en un determinado label. Es decir, si implementamos una nueva categoría deberíamos modificar este y muchos métodos más, en esta y otras clases. Lo anterior corresponde a Divergent Change code smell.

Screenshot from 2021-01-03 12-34-58

Extract Subclass

Para solucionar el code smell mencionado aplicaremos la técnica de refactorización Extract Subclass, de manera que Artefacto tendrá tantas clases hijas como categorías, y cualquier cambio deberá realizarse solo en esa clase. Además esto ayuda a reducir el tamaño del método mostrado ya que en lugar de las validaciones se llamaría a la función correspondiente para el objeto que hereda de Artefacto.

Screenshot from 2021-01-03 12-40-34

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants