在Java中实现桥接设计模式可以通过创建抽象类和具体实现类来完成。下面是一个简单的示例:
首先,我们定义一个抽象类 Shape
(形状):
public abstract class Shape {
protected Color color;
public Shape(Color color) {
this.color = color;
}
public abstract void draw();
}
然后,我们定义一个抽象类 Color
(颜色):
public abstract class Color {
public abstract void applyColor();
}
接下来,我们创建具体的形状类和颜色类。例如,我们可以实现两种形状:圆形和矩形,以及两种颜色:红色和蓝色。
public class Circle extends Shape {
public Circle(Color color) {
super(color);
}
@Override
public void draw() {
System.out.print("画一个圆形,");
color.applyColor();
}
}
public class Rectangle extends Shape {
public Rectangle(Color color) {
super(color);
}
@Override
public void draw() {
System.out.print("画一个矩形,");
color.applyColor();
}
}
public class RedColor extends Color {
@Override
public void applyColor() {
System.out.println("应用红色");
}
}
public class BlueColor extends Color {
@Override
public void applyColor() {
System.out.println("应用蓝色");
}
}
现在,我们可以使用桥接模式将形状和颜色进行桥接。下面是一个示例的使用:
public class Main {
public static void main(String[] args) {
Color red = new RedColor();
Color blue = new BlueColor();
Shape circle = new Circle(red);
circle.draw();
Shape rectangle = new Rectangle(blue);
rectangle.draw();
}
}
输出结果:
画一个圆形,应用红色
画一个矩形,应用蓝色
这个例子展示了桥接模式的实现。通过将形状和颜色进行桥接,可以轻松地创建不同形状和颜色的组合,而且它们可以独立地变化,互不影响。