Sobes.tech
Junior — Middle

Kāpēc tiltā modeļa gadījumā tiek atdalīta abstrakcija un konkrēta īstenošana?

sobes.tech AI

Atbilde no AI

Bridge (Tilts) modeļa gadījumā, abstrakcijas un konkrētas realizācijas atdalīšana ļauj tās mainīt neatkarīgi. Tas tiek panākts tāpēc, ka abstrakcija satur atsauci uz realizācijas saskarni, nevis uz konkrētu klasi.

Atdalīšanas iemesli:

  • Elastība: Var mainīt realizāciju bez abstrakcijas maiņas un otrādi.
  • Paplašināmība: Jaunas realizācijas un jaunas abstrakcijas ir viegli pievienot bez daudzām apakšklasēm.
  • Izmaiņu izolācija: Izmaiņas realizācijā neietekmē klienta kodu, kas izmanto abstrakciju.

Piemēram, ja jums ir abstrakcija "Figūra" un realizācijas "Zīmēšana uz ekrāna" un "Zīmēšana failā", jūs varat mainīt zīmēšanas veidu, nemainot figūras loģiku.

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.audeklis " + x + "," + y + " rādiuss " + 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);
    }
}

Tādējādi, "Circle" abstrakcija nav atkarīga no "DrawingAPI" konkrētās realizācijas, kas atvieglo uzturēšanu un paplašināšanu.