Facade.h
#ifndef FACADE_H
#define FACADE_H
#include "subsystemone.h"
#include "subsystemtwo.h"
class Facade
{
public:
Facade()
{
one = new SubSystemOne();
two = new SubSystemTwo();
}
void methodA()
{
qDebug() << "方法A";
one->show();
two->show();
}
private:
SubSystemOne *one;
SubSystemTwo *two;
};
#endif // FACADE_H
subsystemone.h
#ifndef SUBSYSTEMONE_H
#define SUBSYSTEMONE_H
#include <QtDebug>
class SubSystemOne
{
public:
SubSystemOne() {}
void show(){ qDebug() << "显示one"; }
};
#endif // SUBSYSTEMONE_H
subsystemtwo.h
#ifndef SUBSYSTEMTWO_H
#define SUBSYSTEMTWO_H
class SubSystemTwo
{
public:
SubSystemTwo() {}
void show(){ qDebug() << "显示two"; }
};
#endif // SUBSYSTEMTWO_H
main
#include <QApplication>
#include "Facade.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Facade *facade = new Facade();
facade->methodA();
return a.exec();
}
增加外观Facade,可以提供一个简单的接口,减少它们之间的依赖。
UML