小蔡学Java

Java之设计模式 (十三)

2023-09-23 19:23 1060 0 设计模式 设计模式桥接模式

桥接模式(Bridge Pattern)

  Java桥接模式(Bridge Pattern)是一种结构型设计模式,它将一个对象的抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式的目的是将抽象与实现解耦,从而实现系统的灵活性和可扩展性。 使用场景

  • 当一个类存在多个实现版本时,可以使用桥接模式将其分离开来,从而使得这些实现版本可以独立地变化。

  • 当需要将一个抽象部分与它的实现部分分离开来,以便它们可以独立地进行修改和扩展时,可以使用桥接模式。

  • 当需要在抽象类中定义抽象方法,以便在不同的实现类中实现具体的行为时,可以使用桥接模式。

  • 当需要在运行时动态地改变一个对象的实现时,可以使用桥接模式。

  • 当需要将一个大类拆分成多个独立的层级时,可以使用桥接模式

代码实现

  假设有一个图形绘制应用程序,它支持绘制不同颜色的图形。图形可以是矩形、圆形等等。我们可以使用桥接模式来将颜色和图形分离开来。   首先,我们定义一个颜色接口 Color 和它的两个实现类 Red 和 Blue

public interface Color {
    public void applyColor();
}
public class Red implements Color {
    @Override
    public void applyColor() {
        System.out.println("Applying red color");
    }
}
public class Blue implements Color {
    @Override
    public void applyColor() {
        System.out.println("Applying blue color");
    }
}

  然后,我们定义一个抽象的图形类 Shape,它包含一个颜色接口的引用

public abstract class Shape {
    protected Color color;
    
    public Shape(Color color) {
        this.color = color;
    }
    
    public abstract void draw();
}

  接下来,定义两个实现类 Rectangle 和 Circle,它们继承自 Shape 类

public class Rectangle extends Shape {
    public Rectangle(Color color) {
        super(color);
    }
    
    @Override
    public void draw() {
        System.out.print("Drawing rectangle. ");
        color.applyColor();
    }
}

public class Circle extends Shape {
    public Circle(Color color) {
        super(color);
    }
    
    @Override
    public void draw() {
        System.out.print("Drawing circle. ");
        color.applyColor();
    }
}

  现在,我们可以使用这些类来绘制不同颜色的图形

Color red = new Red();
Color blue = new Blue();

Shape rectangle = new Rectangle(red);
rectangle.draw();//Drawing rectangle. Applying red color 

Shape circle = new Circle(blue);
circle.draw();//Drawing circle. Applying blue color

  Shape 类充当桥接模式中的抽象部分,Color 接口充当实现部分。使用桥接模式,我们可以轻松地添加新的图形和颜色类,而不会影响现有的代码。

评论( 0 )

  • 博主 Mr Cai
  • 坐标 河南 信阳
  • 标签 Java、SpringBoot、消息中间件、Web、Code爱好者

文章目录