Java学设计模式之桥接模式

一、桥接模式概念

1.1 什么是桥接模式

桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。桥接模式通过将抽象部分和实现部分分离来解决多维度变化的问题,从而提高了系统的灵活性和可扩展性。

结构

桥接模式通常由以下几个部分组成:

  1. Abstraction(抽象类): 定义了抽象部分的接口,并维护一个指向实现部分的引用。
  2. RefinedAbstraction(扩充抽象类): 扩展了抽象部分的接口,通常需要实现更多的功能。
  3. Implementor(实现接口): 定义了实现部分的接口,通常是一些基本操作。
  4. ConcreteImplementor(具体实现类): 实现了实现部分的接口,提供了具体的实现。

二、桥接模式代码

2.1 实现接口

public interface Color {
    void applyColor();
}

2.2 具体实现类

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

2.3 抽象类

public abstract class Shape {
    protected Color color;

    public Shape(Color color) {
        this.color = color;
    }

    abstract void applyColor();
}

2.4 扩充抽象类

public class Circle extends Shape{
    public Circle(Color color) {
        super(color);
    }

    @Override
    void applyColor() {
        System.out.print("Circle filled with color: ");
        color.applyColor();
    }
}
public class Square extends Shape {
    public Square(Color color) {
        super(color);
    }

    @Override
    void applyColor() {
        System.out.print("Square filled with color: ");
        color.applyColor();
    }
}

2.5 测试类

public class BridgePatternTest {
    public static void main(String[] args) {
        Shape redCircle = new Circle(new Red());
        redCircle.applyColor();
        Shape greenSquare = new Square(new Green());
        greenSquare.applyColor();
        // 输出:
        // Circle filled with color: Applying red color
        // Square filled with color: Applying green color
    }
}

三、总结

桥接模式的优点包括:

  • 分离了抽象部分和实现部分,使它们可以独立地变化。
  • 提高了系统的灵活性和可扩展性,可以方便地添加新的抽象部分和实现部分。

缺点包括:

  • 增加了系统的复杂性,需要额外的抽象和实现类来实现分离。
  • 客户端需要了解抽象部分和实现部分之间的关系,可能会增加理解成本。
posted @ 2024-05-09 16:31  Kllin  阅读(6)  评论(0编辑  收藏  举报