Ho trascorso un po 'di tempo su questo esempio di modello Bridge da wikipedia, tuttavia, non riesco ancora a capire cosa stia cercando di spiegare questo modello di bridge.Esempio di un esempio di bridge
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 sottoclasse CircleShape costruttore prende 4 args, nel suo metodo draw(), i primi 3 args vengono passati al 4 arg che può essere qualsiasi sottoclasse da DrawingAPI. Quindi, ciò significa che l'utilizzo del pattern bridge può aumentare la flessibilità? e ci sono altre cose che questo esempio può dirci?
Grazie !!!!
Grazie, ho una più chiara visione del modello ora. dopo google per ore modello, avevo trovato un buon collegamento per i modelli http://www.allappforum.com/java_design_patterns/creational_patterns.htm V'è un semplice esempio su modello bridge. V'è un interruttore un'interfaccia chiamata, e due sottoclassi sono chiamati Lampadina e Fan, ciascuna della sottoclasse ha una propria implementazione per Switch.A esempio, piacevole e semplice. – user200340