Java 设计模式之桥接模式(Bridge Pattern)
// 抽象化角色:图形接口
interface Shape {
void draw();
}
// 实现化角色:具体图形类
class Circle implements Shape {
@Override
public void draw() {
System.out.println("Circle is drawn.");
}
}
class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Rectangle is drawn.");
}
}
// 抽象化角色:颜色接口
interface Color {
void fill();
}
// 实现化角色:具体颜色类
class Red implements Color {
@Override
public void fill() {
System.out.println("Color is red.");
}
}
class Green implements Color {
@Override
public void fill() {
System.out.println("Color is green.");
}
}
// 桥接角色:桥接类
class Bridge {
private Shape shape;
private Color color;
public Bridge(Shape shape, Color color) {
this.shape = shape;
this.color = color;
}
public void draw() {
shape.draw();
color.fill();
}
}
// 客户端代码
public class BridgePatternDemo {
public static void main(String[] args) {
// 创建一个红色的圆
Bridge bridge = new Bridge(new Circle(), new Red());
bridge.draw(); // 输出: Circle is drawn. Color is red.
}
}
这个代码示例展示了如何使用桥接模式来将图形的绘制和颜色填充进行分离,从而可以独立地对它们进行扩展。在客户端代码中,我们创建了一个红色的圆形,并调用了draw()
方法,它会分别调用图形的draw()
和颜色的fill()
方法,输出相应的信息。这样的设计使得每个类都可以独立地扩展和改变,满足开闭原则。
评论已关闭