23种设计模式之代理模式(结构型,1 Proxy,c++实现)
代码实现:
#include <iostream>
using namespace std;
class Bookstore
{
public:
virtual void sale() = 0;
};
class PhysicalBookstore :public Bookstore
{
public:
void sale()
{
cout << "sale book" << endl;
}
};
class Dangdangwang :public Bookstore
{
public:
void sale()
{
Bookstore* bs = new PhysicalBookstore;
discount();
cout << "sale book" << endl;
}
void discount()
{
cout << "discount" << endl;
}
private:
Bookstore* bookStore;
};
void main()
{
Bookstore* bs = new Dangdangwang;
bs->sale();
}