Академический Документы
Профессиональный Документы
Культура Документы
El patrón bridge desvincula una abstracción de su implementación, de manera que ambas puedan variar de
forma independiente.
Se desea construir un programa que produzca y ensamble dos tipos de vehículos (carros y bicicletas), cual
sería la estructura usando patrón de diseño bridge.
El primero es que cada subclase depende directamente, hereda, de un padre de modo que cada
vez que quiera cambiar algo de este; sus hijos se verán afectados. Llámesele acoplamiento. A la
izquierda si cambio algo de Bike o de Car, sus respectivos ProduceX y AsempleX se verán
afectados.
Véase, sin embargo, como con el diseño de la parte superior la vinculación del Produce o
Assemble solo es efectiva en tanto que:
Manufacture() {
Manufacture1.work();
Manufacture2.work();
}
Y por tanto un cambio en Bike o en Car no tendrá ninguna consecuencia en Produce o Assemble.
Implementación en código Java:
package com.javapapers.designpattern;
/**
* abstraction in bridge pattern
* */
abstract class Vehicle {
protected Workshop workShop1;
protected Workshop workShop2;
package com.javapapers.designpattern;
/**
* Refine abstraction 1 in bridge pattern
*/
public class Car extends Vehicle {
@Override
public void manufacture() {
System.out.print("Car ");
workShop1.work();
workShop2.work();
package com.javapapers.designpattern;
/**
* Refine abstraction 2 in bridge pattern
*/
public class Bike extends Vehicle {
@Override
public void manufacture() {
System.out.print("Bike ");
workShop1.work();
workShop2.work();
}
package com.javapapers.designpattern;
/**
* Implementor for bridge pattern
* */
public interface Workshop {
abstract public void work();
}
package com.javapapers.designpattern;
/**
* Concrete implementation 1 for bridge pattern
* */
public class Produce implements Workshop {
@Override
public void work() {
System.out.print("Produced");
}
package com.javapapers.designpattern;
/**
* Concrete implementation 2 for bridge pattern
* */
public class Assemble implements Workshop {
@Override
public void work() {
System.out.println(" Assembled.");
}
package com.javapapers.designpattern;
/*
* Demonstration of bridge design pattern
*/
public class BridgePattern {
}
}
Output:
Car Produced Assembled.
Bike Produced Assembled.