Привет, нашел в интернете реализацию паттерна мост, она выглядит следующим образом, но есть вопрос правильная ли она?
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() {
        //...код
    }
};