在两个无关的类中间,加入一个抽象层,使之发生关联,降低类之间的耦合性。
#include <assert.h>
//桥接模式
class implementor//(桥)
{
public:
virtual void OperationImp()=0;
};
class conn_ACCESS2000:public implementor //对岸
{
public:
virtual void OperationImp()//实现虚方法
{
ShowMessage("连接ACCESS2000");
}
};
class conn_SQLServer:public implementor //对岸
{
public:
virtual void OperationImp()//实现虚方法
{
ShowMessage("连接SQLServer");
}
};
class conn_MySQL:public implementor //对岸
{
public:
virtual void OperationImp()//实现虚方法
{
ShowMessage("连接MySQL");
}
};
class Abstraction //此岸
{
public:
void Operation(implementor * imp)//参数代入对岸对象
{
assert(imp);
imp->OperationImp();//通过桥调用
}
};
调用方法如下:
implementor * p1 = new conn_ACCESS2000();
implementor * p2 = new conn_SQLServer();
Abstraction a;
a.Operation(p1);
a.Operation(p2);