Рубрики
Без рубрики

Узор моста

Отделите абстракцию от ее реализации, чтобы они могли изменяться независимо друг от друга. P… С тегами structural, pattern, design patterns, java.

Отделите абстракцию от ее реализации, чтобы они могли изменяться независимо друг от друга.

  • Абстракция: определяет интерфейс абстракции. Поддерживает ссылку на объект типа Implementor.
  • Уточненная абстракция: расширяет интерфейс, определенный абстракцией.
  • Разработчик: определяет интерфейс для классов реализации. Этот интерфейс не обязательно должен точно соответствовать интерфейсу абстракции; на самом деле эти два интерфейса могут быть совершенно разными. Обычно интерфейс реализации предоставляет только примитивные операции, а абстракция определяет операции более высокого уровня на основе этих примитивов.
  • ConcreteImplementor: реализует интерфейс разработчика и определяет его конкретную реализацию.
public class Main {

    public static void main(String[] args) {
        Abstraction ab = new RefinedAbstraction();
        ab.implementor = new ConcreteImplementorA();
        ab.operation();
        ab.implementor = new ConcreteImplementorB();
        ab.operation();
    }
}

public class Abstraction {

    protected Implementor implementor;

    public void setImplementor(Implementor implementor) {
        this.implementor = implementor;
    }

    public void operation() {
        implementor.operation();
    }
}

public interface Implementor {

    public void operation();
}

public class RefinedAbstraction extends Abstraction {

    @Override
    public void operation() {
        implementor.operation();
    }
}

public class ConcreteImplementorA implements Implementor {

    @Override
    public void operation() {
        System.out.println("ConcreteImplementorA Operation");
    }
}

public class ConcreteImplementorB implements Implementor {

    @Override
    public void operation() {
        System.out.println("ConcreteImplementorB Operation");
    }
}
ConcreteImplementorA Operation
ConcreteImplementorB Operation

eidherjulian61/дизайн-шаблоны

Основные шаблоны Проектирования

ид ・ 27 сентября ・ 1 минута чтения

Оригинал: “https://dev.to/eidher/bridge-pattern-3og5”