Pedro del Gallego's Weblog
domingo septiembre 26, 2004
Antipatron : Concrete Class Dependency O el "Antipatrón" mas sencillo del mundo.
Estaba yo revisando un código antiguo, es decir refactorizando modernamente ;), cuando vi la peculiar forma que tenia de hacer las cosas y es que, como todos, mi forma de tirar código va variando segun los conocimientos (y modas) pero sobre todo segun los trompazos que
me vaya dadon contra mis propios ladrillos de código, una de las cosas que mas rápido se aprende en la POO, es que cuanto menos dependas de algo mejor (otra cosa, es que lo pongamos en práctica pronto)
Pues bueno a lo que voy, para desacoplar una clase que depende de otra debemos seguir la maxima Interface Implementation Separation (apartir de ahora IIS, ummm mejor no ;). Veamos esto en código.
Antipatron : Concrete Class Dependency
public class A {
private final B b;
public A(B b) {
this.b = b;
}
}
public class B {
}
Como vemos A depende de una instancia concreta de B, con lo facil que seria esto:
Solución
public interface B {
}
public class BImpl implements B {
}
Con Esto reduciremos el grado de acoplamiento que existen entre la clase A con respecto de la B. Espero que esto le sirva a alguien para que no tenga que esconder código debajo de la manta como yo :P .
PS I: Ejemp tomado de la página de picocontainer.
( sep 26 2004, 06:04:00 PM CEST )
Permalink