Sobes.tech
Junior — Middle
89

Warum trennt das Brückenmuster die Abstraktion und die konkrete Implementierung?

Unternehmen wurden gefragt
СБЕРСБЕР

Antwort von AI

sobes.tech KI

Im Muster "Brücke" (Bridge) ermöglicht die Trennung von Abstraktion und konkreter Implementierung, sie unabhängig voneinander zu ändern. Dies wird erreicht, weil die Abstraktion eine Referenz auf die Implementierungs-Schnittstelle enthält, nicht auf eine konkrete Klasse.

Gründe für die Trennung:

  • Flexibilität: Die Implementierung kann geändert werden, ohne die Abstraktion zu beeinflussen, und umgekehrt.
  • Erweiterbarkeit: Es ist einfach, neue Implementierungen und Abstraktionen hinzuzufügen, ohne viele Unterklassen zu erstellen.
  • Isolierung von Änderungen: Änderungen an der Implementierung wirken sich nicht auf den Client-Code aus, der die Abstraktion verwendet.

Zum Beispiel, wenn Sie eine Abstraktion "Figur" haben und Implementierungen "Zeichnen auf dem Bildschirm" und "Zeichnen in eine Datei", können Sie die Zeichenmethode ändern, ohne die Logik der Figur zu verändern.

interface DrawingAPI {
    void drawCircle(double x, double y, double radius);
}

class DrawingAPI1 implements DrawingAPI {
    public void drawCircle(double x, double y, double radius) {
        System.out.println("API1.Kreis bei " + x + "," + y + " Radius " + radius);
    }
}

class Circle {
    private double x, y, radius;
    private DrawingAPI drawingAPI;

    public Circle(double x, double y, double radius, DrawingAPI drawingAPI) {
        this.x = x; this.y = y; this.radius = radius; this.drawingAPI = drawingAPI;
    }

    public void draw() {
        drawingAPI.drawCircle(x, y, radius);
    }
}

Auf diese Weise ist die Abstraktion Circle nicht von einer konkreten Implementierung von DrawingAPI abhängig, was Wartung und Erweiterung erleichtert.