橋接模式什麼意思

橋接模式(Bridge Pattern)是軟件設計模式中的一種,它屬於結構型模式。橋接模式的目的是將抽象部分與它的實現部分分離,讓他們可以獨立變化。這種模式通常用來解決當你想要對象的行為和狀態進行分離時的問題。

在橋接模式中,有兩個主要的類別:

  1. 抽象部分(Abstraction):定義了基本的方法和行為,並持有具體實體(Concrete Implementor)的引用。
  2. 具體實體(Concrete Implementor):提供了抽象部分定義的方法的具體實現。

橋接模式可以讓你在不改變抽象部分的代碼的情況下,改變具體實體的類型,從而改變對象的行為。這有助於提高代碼的靈活性和可維護性。

下面是一個簡單的橋接模式示例:

// 抽象部分
interface Shape {
    void draw();
}

// 具體實體1
class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a rectangle.");
    }
}

// 具體實體2
class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a circle.");
    }
}

// 橋接模式的使用
class DrawingTool {
    private Shape shape;

    public DrawingTool(Shape shape) {
        this.shape = shape;
    }

    public void useTool() {
        shape.draw();
    }
}

public class Main {
    public static void main(String[] args) {
        Shape rectangle = new Rectangle();
        DrawingTool drawingTool = new DrawingTool(rectangle);
        drawingTool.useTool(); // 輸出:Drawing a rectangle.

        Shape circle = new Circle();
        drawingTool = new DrawingTool(circle);
        drawingTool.useTool(); // 輸出:Drawing a circle.
    }
}

在上面的示例中,Shape 是抽象部分,RectangleCircle 是具體實體,DrawingTool 是橋接模式的用戶。DrawingTool 持有 Shape 對象的引用,這樣就可以在不改變 DrawingTool 代碼的情況下,通過傳遞不同的 Shape 對象來改變繪圖工具的行為。