Qt C++ decorate模式
来源:互联网 发布:短网址网站源码 编辑:程序博客网 时间:2024/06/10 10:06
decorate.h
#pragma once
#include <QDebug>
class CPhone
{
public:
virtual void showPhoneForm() = 0;
};
class CApplePhone : public CPhone
{
public:
CApplePhone(){}
void showPhoneForm()
{
qDebug() << "this is a applephone!";
}
};
class CNokiaPhone : public CPhone
{
public:
CNokiaPhone(){}
void showPhoneForm()
{
qDebug() << "this is a nokiaphone!";
}
};
class CDecorate : public CPhone
{
public:
CDecorate(CPhone *phone) :m_phone(phone){}
virtual void showPhoneForm(){m_phone->showPhoneForm();}
private:
CPhone *m_phone;
};
class CVelumDecorate : public CDecorate
{
public:
CVelumDecorate(CPhone *phone):CDecorate(phone){}
void showPhoneForm();
};
class CCrustDecorate : public CDecorate
{
public:
CCrustDecorate(CPhone *phone):CDecorate(phone){}
void showPhoneForm();
};
decorate.cpp
#include "decorate.h"
void CVelumDecorate::showPhoneForm()
{
CDecorate::showPhoneForm();
qDebug() << "this phone paste a velum";
}
void CCrustDecorate::showPhoneForm()
{
CDecorate::showPhoneForm();
qDebug() << "this phone add a crust";
}
main.cpp
#include <QApplication>
#include "decorate.h"
int main(int argc,char **argv)
{
QApplication app(argc,argv);
CPhone *apple = new CApplePhone;
CPhone *nokia = new CNokiaPhone;
CDecorate *velum = new CVelumDecorate(apple);
velum->showPhoneForm();
CDecorate *crust = new CCrustDecorate(nokia);
crust->showPhoneForm();
return app.exec();
}
- Qt C++ decorate模式
- 装饰模式(Decorate Mode) C和C++的实现
- 浅谈装饰模式decorate
- Decorate(修饰模式)
- 设计模式练习:Decorate模式
- 结构模式:decorate装饰模式
- 设计模式--装饰模式(Decorate)
- .Net 中的装饰模式Decorate
- Groovy探索之Decorate模式
- 装饰模式(Decorate Pattern)
- Decorate
- 对strategy,bridge,decorate模式的理解
- 《设计模式解析》 第17章 Decorate模式 复习题
- 深入浅出设计模式(9)——Decorate模式
- 设计模式之装饰模式(Decorate Pattern)
- 使用Decorate模式实现留言版词汇处理
- Decorate(装饰者模式) 实现留言版词汇处理
- 装饰者模式(decorate pattern)(咖啡)
- 关于软件I2C与MSP430通信的问题
- 存贷款基准利率
- 使用UIActivityIndicatorView
- 修改了kernel之后,每次重启后,就会出现kernel文件被破坏的情况
- 螺旋矩阵
- Qt C++ decorate模式
- Oracle Database :玩转Oracle学习笔记之(14):PLSQL函数包
- hdoj_1428漫步校园
- 如何把 opengrok 安装在 windows上
- Oracle中TO_DATE格式的使用小结
- 卸载虚拟机virtualbox中的ubuntu系统
- Oracle Database :玩转Oracle学习笔记之(15):PLSQL函数包
- 深入浅出JSONP--解决ajax跨域问题
- 关于工作效率