Назад к вопросам
Junior — Middle
65
Ты знаком с концепцией паттерна Bridge и можешь объяснить его принципиальные особенности?
Ответ от нейросети
sobes.tech AI
Паттерн Bridge (Мост) используется для разделения абстракции и её реализации, чтобы они могли изменяться независимо друг от друга. Это достигается за счёт создания двух иерархий классов: одна отвечает за абстракцию, другая — за реализацию.
Основные особенности:
- Абстракция содержит ссылку на объект реализации.
- Абстракция и реализация развиваются независимо.
- Позволяет избежать множества подклассов, комбинируя разные реализации и абстракции.
Пример на Java:
// Реализация
interface Renderer {
void renderCircle(float radius);
}
class VectorRenderer implements Renderer {
public void renderCircle(float radius) {
System.out.println("Drawing a circle of radius " + radius + " as lines");
}
}
class RasterRenderer implements Renderer {
public void renderCircle(float radius) {
System.out.println("Drawing pixels for circle with radius " + radius);
}
}
// Абстракция
abstract class Shape {
protected Renderer renderer;
public Shape(Renderer renderer) {
this.renderer = renderer;
}
public abstract void draw();
}
class Circle extends Shape {
private float radius;
public Circle(Renderer renderer, float radius) {
super(renderer);
this.radius = radius;
}
public void draw() {
renderer.renderCircle(radius);
}
}
// Использование
public class Main {
public static void main(String[] args) {
Renderer renderer = new VectorRenderer();
Shape circle = new Circle(renderer, 5);
circle.draw();
}
}