Pasé algún tiempo en este ejemplo de patrón de puente de wikipedia, sin embargo, todavía no entiendo qué es lo que intenta explicar este patrón de puente.Un ejemplo de patrón de puente
interface DrawingAPI { public void drawCircle(double x, double y, double radius); } /** "ConcreteImplementor" 1/2 */ class DrawingAPI1 implements DrawingAPI { public void drawCircle(double x, double y, double radius) { System.out.printf("API1.circle at %f:%f radius %f\n", x, y, radius); } } /** "ConcreteImplementor" 2/2 */ class DrawingAPI2 implements DrawingAPI { public void drawCircle(double x, double y, double radius) { System.out.printf("API2.circle at %f:%f radius %f\n", x, y, radius); } } /** "Abstraction" */ interface Shape { public void draw(); // low-level public void resizeByPercentage(double pct); // high-level } /** "Refined Abstraction" */ class CircleShape implements Shape { private double x, y, radius; private DrawingAPI drawingAPI; public CircleShape(double x, double y, double radius, DrawingAPI drawingAPI) { this.x = x; this.y = y; this.radius = radius; this.drawingAPI = drawingAPI; } // low-level i.e. Implementation specific public void draw() { drawingAPI.drawCircle(x, y, radius); } // high-level i.e. Abstraction specific public void resizeByPercentage(double pct) { radius *= pct; } } /** "Client" */ class Main { public static void main(String[] args) { Shape[] shapes = new Shape[2]; shapes[0] = new CircleShape(1, 2, 3, new DrawingAPI1()); shapes[1] = new CircleShape(5, 7, 11, new DrawingAPI2()); for (Shape shape : shapes) { shape.resizeByPercentage(2.5); shape.draw(); } } }
La subclase CircleShape constructor toma 4 args, en su método draw(), los primeros 3 args se pasan a la cuarta arg que puede ser cualquier subclase de DrawingAPI. ¿Significa esto que el uso de un patrón de puente puede aumentar la flexibilidad? y hay más cosas que este ejemplo pueda decirnos?
Gracias !!!!
Gracias, tengo una visión más clara del patrón ahora. después de google durante horas sobre el patrón, he encontrado un buen enlace para los patrones http://www.allappforum.com/java_design_patterns/creational_patterns.htm Hay un ejemplo simple sobre el patrón del puente. Hay una interfaz llamada Switch, y dos subclases se llaman Bulb y Fan, cada una de las subclases tiene su propia implementación para Switch. Un ejemplo agradable y simple. – user200340