桥接模式
其他二十三种设计模式
#include<iostream>
using namespace std;
class Implementor {
public:
virtual void Operation() = 0;
};
class ConcreteImplementorA :public Implementor {
public:
virtual void Operation() {
cout << "具体实现A方法" << endl;
}
};
class ConcreteImplementorB :public Implementor {
public:
virtual void Operation() {
cout << "具体实现B方法" << endl;
}
};
class Abstraction {
public:
void SetImplementor(Implementor* _implementor) {
this->implementor = _implementor;
}
virtual void Operation() = 0;
protected:
Implementor* implementor;
};
class RefinefAbstraction :public Abstraction {
public:
virtual void Operation() {
implementor->Operation();
}
};
void test1() {
Abstraction* ab = new RefinefAbstraction;
ab->SetImplementor(new ConcreteImplementorA());
ab->Operation();
ab->SetImplementor(new ConcreteImplementorB());
ab->Operation();
delete ab;
}
int main() {
test1();
return 0;
}