#include <iostream>
using namespace std;
//装饰器模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。
//基类
class hero
{
public:
virtual void stack() = 0;
};
class zhangfei :public hero
{
public:
virtual void stack()
{
cout<<"攻击力"<<500<<endl;
cout<<"防御力"<<250<<endl;
cout<<"速度"<<100<<endl;
}
};
//装饰类
class zhangbashemao:public hero{
public:
zhangbashemao(hero* her)
{
this->he = her;
}
//增加方法
void zhangbashou()
{
cout<<"穿甲+"<<100<<endl;
}
virtual void stack()
{
he->stack();
zhangbashou();
}
public:
hero* he;
};
void test01()
{
hero* he = NULL;
he = new zhangfei;
he->stack();
hero* zhangba = NULL;
zhangba = new zhangbashemao(he);
zhangba->stack();
}
int main()
{
test01();
cout << "Hello World!" << endl;
return 0;
}