// Implementor
interface Color {
void applyColor();
}
// ConcreteImplementor
class RedColor implements Color {
public void applyColor(){
System.out.println("red.");
}
}
class BlueColor implements Color {
public void applyColor(){
System.out.println("blue.");
}
}
// Abstraction
abstract class Shape {
protected Color color;
public Shape(Color color){
this.color = color;
}
abstract public void applyColor();
}
// RefinedAbstraction
class Triangle extends Shape {
public Triangle(Color color){
super(color);
}
public void applyColor(){
System.out.print("Triangle filled with color ");
color.applyColor();
}
}
class Circle extends Shape {
public Circle(Color color){
super(color);
}
public void applyColor(){
System.out.print("Circle filled with color ");
color.applyColor();
}
}
// Client code
public class BridgePatternTest {
public static void main(String[] args) {
Shape tri = new Triangle(new RedColor());
tri.applyColor();
Shape cir = new Circle(new BlueColor());
cir.applyColor();
}
}
10-24
148
09-14
2013
08-11
839