948просмотров
45.2%от подписчиков
25 августа 2025 г.
Score: 1.0K
❗Паттерны проектирования. Структурные паттерны. Bridge (Мост). Паттерн проектирования "Мост" (Bridge) используется для разделения абстракции и реализации, что позволяет изменять их независимо друг от друга. Этот паттерн особенно полезен, когда у вас есть множество возможных реализаций и абстракций, которые могут изменяться независимо, что делает систему более гибкой и расширяемой.
interface Engine { void setEngine();
}
abstract class Car { protected Engine engine; public Car(Engine engine){ this.engine = engine; } abstract public void setEngine();
}
class SportCar extends Car { public SportCar(Engine engine) { super(engine); } public void setEngine() { System.out.print("SportCar engine: "); engine.setEngine(); }
}
class UnknownCar extends Car { public UnknownCar(Engine engine) { super(engine); } public void setEngine() { System.out.print("UnknownCar engine: "); engine.setEngine(); }
}
class SportEngine implements Engine { public void setEngine(){ System.out.println("sport"); }
}
class UnknownEngine implements Engine { public void setEngine(){ System.out.println("unknown"); }
}
public class BridgeTest { public static void main(String[] args) { Car sportCar = new SportCar(new SportEngine()); sportCar.setEngine(); System.out.println(); Car unknownCar = new UnknownCar(new UnknownEngine()); unknownCar.setEngine(); }
}
😎 Преимущества паттерна Bridge 1⃣ Гибкость: Позволяет изменять реализацию и абстракцию независимо друг от друга. 2⃣Упрощение кода: Избегает создания множества подклассов для каждой комбинации абстракции и реализации. 3⃣ Легкость в расширении: Новые реализации и абстракции могут быть добавлены без изменения существующего кода. 😌 Недостатки паттерна Bridge 1⃣Сложность: Увеличивает количество классов в системе. 2⃣Потенциальная путаница: Понимание структуры может быть сложнее из-за разделения на абстракцию и реализацию. Таким образом, паттерн "Мост" является мощным инструментом для создания гибких и расширяемых систем с четким разделением ответственности между абстракцией и реализацией. 🖥Java Developer | Backend |#⃣ #обучение #java