Qt中装饰者模式的实现,不多说了main.cpp如下:
装饰模式源码如下:源码在这里下
#include <QCoreApplication>
#include <QDebug>
#include "HouseBlend.h"
#include "Espresso.h"
#include "Beverage.h"
#include "Mocha.h"
#include "Whip.h"
#include "Soy.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 点一杯 Espresso 什么都不加
Beverage * beverage = new Espresso();
qDebug() << beverage->getDescription() << beverage->cost();
// 点一杯 HouseBlend 加whip 和 Mocha
Beverage * beverage2 = new HouseBlend();
beverage2 = new Mocha(beverage2);
beverage2 = new Whip(beverage2);
qDebug() << beverage2->getDescription() << beverage2->cost();
// 点一杯 HouseBlend 加whip 和 Mocha Soy
Beverage * beverage3 = new HouseBlend();
beverage3 = new Mocha(beverage3);
beverage3 = new Whip(beverage3);
beverage3 = new Soy(beverage3);
qDebug() << beverage3->getDescription() << beverage3->cost();
return a.exec();
}