Sobes.tech
Junior — Middle

Чаро дар намунаи пул барои ҷудо кардани абстраксия ва татбиқи мушаххас?

sobes.tech AI

Ҷавоб аз AI

Дархости "Мост" (Bridge) дар модели, ҷудо кардани абстраксия ва татбиқи мушаххас имкон медиҳад, ки онҳоро мустақилона тағир додан мумкин аст. Ин тавассути он ки абстраксия ба интерфейси татбиқ ишора мекунад, на ба синфи мушаххас.

Сабабҳои ҷудо кардан:

  • Иҷрои чандирӣ: Мумкин аст, ки татбиқро бидуни тағир додани абстраксия ва баръакс тағир дод.
  • Пенсионӣ: Осон аст, ки татбиқҳои нав ва абстраксияҳои нав илова кунед, бидуни бисёр синфҳои зер.
  • Изолятсияи тағирот: Тағирот дар татбиқ ба кодҳои муштарӣ, ки аз абстраксия истифода мебаранд, таъсир намерасонад.

Масалан, агар шумо абстраксия "Шакл" ва татбиқҳои "Расмкашӣ дар экран" ва "Расмкашӣ ба файл" дошта бошед, шумо метавонед усули расмкаширо тағир диҳед, бидуни тағир додани мантиқи шакл.

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.доира дар " + x + "," + y + " радиус " + 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);
    }
}

Инчунин, абстраксияи "Circle" аз татбиқи мушаххаси "DrawingAPI" вобаста нест, ки нигоҳдорӣ ва васеъкунӣро осон мекунад.