Паттерн Мост / Bridge должен выглядеть примерно так? Привет, нашел в интернете реализацию паттерна мост, она выглядит следующим образом, но есть вопрос правильная ли она?class Implementor;
class Abstraction {
public:
virtual ~Abstraction() {};
virtual void Operation() = 0;
protected:
Implementor* implement;
};
class RefinedAbstraction : public Abstraction {
public:
void Operation() {
//...код
}
};
class Implementor {
public:
virtual ~Implementor() {};
virtual void OperationImp() = 0;
};
class ConcreteImplementor1 : public Implementor {
public:
void OperationImp() {
//...код
}
};
class ConcreteImplementor2 {
public:
void OperationImp() {
//...код
}
};

21 Авг 2019 в 06:57
185 +1
0
Ответы
1

Ваш пример немного неполный и содержит ошибку. Во-первых, в классе ConcreteImplementor2 не указано наследование от класса Implementor. Во-вторых, в классе RefinedAbstraction метод Operation должен вызывать метод OperationImp у объекта implement, который указывает на реализацию операции в классе ConcreteImplementor1 или ConcreteImplementor2.

Исправленный пример:

class Implementor {
public:
virtual ~Implementor() {};
virtual void OperationImp() = 0;
};
class Abstraction {
public:
virtual ~Abstraction() {};
virtual void Operation() = 0;
protected:
Implementor* implement;
};
class RefinedAbstraction : public Abstraction {
public:
void Operation() {
implement->OperationImp();
}
};
class ConcreteImplementor1 : public Implementor {
public:
void OperationImp() {
//... код реализации операции
}
};
class ConcreteImplementor2 : public Implementor {
public:
void OperationImp() {
//... код реализации операции
}
};

Этот исправленный пример демонстрирует правильную структуру для паттерна Мост (Bridge).

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 718 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир