#ifndef FACTORYDEMO_H
#define FACTORYDEMO_H
#endif // FACTORYDEMO_H
#include <QDebug>
//抽象类
class app
{
public:
virtual void operation() = 0;
};
class qq : public app
{
public:
void operation() override
{
qInfo() << Q_FUNC_INFO << __LINE__;
}
};
class weixin : public app
{
public:
void operation() override
{
qInfo() << Q_FUNC_INFO << __LINE__;
}
};
class terminual : public app
{
public:
void operation() override
{
qInfo() << Q_FUNC_INFO << __LINE__;
}
};
class appstore : public app
{
public:
void operation() override
{
qInfo() << Q_FUNC_INFO << __LINE__;
}
};
//抽象工厂
class abstractfactory
{
public:
virtual app *creat() = 0;
virtual app *creat2() = 0;
virtual app *creat3() = 0;
};
class chatapp : public abstractfactory
{
public:
app *creat() override
{
return new qq;
}
app *creat2() override
{
return new weixin;
}
app *creat3() override
{
}
};
class officeapp : public abstractfactory
{
public:
app *creat() override
{
return new terminual;
}
app *creat2() override
{
return new appstore;
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
app *ap = nullptr;
abstractfactory *fa = nullptr;
fa = new chatapp;
ap = fa->creat();
ap->operation();
return a.exec();
}
}
设计模式之:工厂模式
最新推荐文章于 2024-09-08 09:00:00 发布