Junior — Middle
90
¿Por qué en el patrón puente se separan la abstracción y la implementación concreta?
Empresas donde se preguntó
Respuesta de la IA
sobes.tech AI
En el patrón "Puente" (Bridge), la separación de la abstracción y la implementación concreta permite modificarlas de manera independiente. Esto se logra porque la abstracción contiene una referencia a la interfaz de implementación, y no a una clase concreta.
Razones para la separación:
- Flexibilidad: Se puede cambiar la implementación sin modificar la abstracción y viceversa.
- Extensibilidad: Es fácil agregar nuevas implementaciones y nuevas abstracciones sin múltiples subclases.
- Aislamiento de cambios: Los cambios en la implementación no afectan al código cliente que usa la abstracción.
Por ejemplo, si tienes una abstracción "Figura" y las implementaciones "Dibujo en pantalla" y "Dibujo en archivo", puedes cambiar la forma de dibujar sin cambiar la lógica de la figura.
interface DrawingAPI {
void drawCircle(double x, double y, double radius);
}
class DrawingAPI1 implements DrawingAPI {
public void drawCircle(double x, double y, double radius) {
System.out.println("API1.círculo en " + x + "," + y + " radio " + radius);
}
}
class Circle {
private double x, y, radius;
private DrawingAPI drawingAPI;
public Circle(double x, double y, double radius, DrawingAPI drawingAPI) {
this.x = x; this.y = y; this.radius = radius; this.drawingAPI = drawingAPI;
}
public void draw() {
drawingAPI.drawCircle(x, y, radius);
}
}
Así, la abstracción Circle no depende de una implementación concreta de DrawingAPI, lo que facilita el mantenimiento y la extensión.