现在的位置: 首页 > 综合 > 正文

Qt C++ bridge模式(桥)

2013年02月17日 ⁄ 综合 ⁄ 共 1031字 ⁄ 字号 评论关闭

Bridge模式使得抽象和实现能够相对独立。

bridge.h

#pragma once

#include <QDebug>

class CImplementor
{
public:
virtual void operateImp() = 0;
};

class CRectImplementor : public CImplementor
{
public:
CRectImplementor(){}
void operateImp()
{
qDebug() << "this is a Rect";
}
};

class CEllipseImplementor : public CImplementor
{
public:
CEllipseImplementor(){}
void operateImp()
{
qDebug() << "this is a ellipse";
}
};

class CAbstractExecute
{
public:
virtual void operate() = 0;
virtual void setImp(CImplementor *imp) = 0;
};

class CExecute : public CAbstractExecute
{
public:
CExecute(CImplementor *imp):_imp(imp){};

void operate();
void setImp(CImplementor *imp)
{
_imp = imp;
}
private:
CImplementor *_imp;
};

bridge.cpp

#include "bridge.h"

void CExecute::operate()
{
if (_imp)
_imp->operateImp();
}

main.cpp

#include <QApplication>
#include "bridge.h"

int main(int argc,char **argv)
{
QApplication app(argc,argv);

CImplementor* rect_imp = new CRectImplementor;
CImplementor* ellipse_imp = new CEllipseImplementor;
CAbstractExecute* exe = new CExecute(rect_imp);
exe->operate();
exe->setImp(ellipse_imp);
exe->operate();
delete exe;
delete ellipse_imp;
delete rect_imp;
return app.exec();
}

抱歉!评论已关闭.