Junior — Middle
Neden köprü deseninde soyutlama ve somut uygulama ayrılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bridge (Köprü) tasarımında, soyutlama ile somut uygulama arasındaki ayrım, bunları birbirinden bağımsız olarak değiştirmeye olanak tanır. Bu, soyutlamanın, belirli bir sınıfa değil, uygulama arayüzüne referans içermesi sayesinde sağlanır.
Ayrımın nedenleri:
- Esneklik: Uygulama, soyutlamayı değiştirmeden değiştirilebilir ve tam tersi.
- Genişletilebilirlik: Yeni uygulamalar ve yeni soyutlamalar, çok sayıda alt sınıf oluşturmadan kolayca eklenebilir.
- Değişikliklerin izolasyonu: Uygulamada yapılan değişiklikler, soyutlamayı kullanan müşteri kodunu etkilemez.
Örneğin, "Şekil" soyutlaması ve "Ekranda çizim" ile "Dosyaya çizim" uygulamaları varsa, şekil mantığını değiştirmeden çizim yöntemini değiştirebilirsiniz.
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.çember at " + x + "," + y + " yarıçap " + 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);
}
}
Bu şekilde, Circle soyutlaması, DrawingAPI'nin belirli bir uygulamasına bağlı değildir, bu da bakım ve genişletmeyi kolaylaştırır.