#include <iostream>
using namespace std;
//具体股票类
class StockA
{
public:
void Sell()
{
cout<<"股票1卖出"<<endl;
}
void Buy()
{
cout<<"股票1买入"<<endl;
}
};
//具体股票类
class StockB
{
public:
void Sell()
{
cout<<"股票2卖出"<<endl;
}
void Buy()
{
cout<<"股票2买入"<<endl;
}
};
//具体股票类
class StockC
{
public:
void Sell()
{
cout<<"股票3卖出"<<endl;
}
void Buy()
{
cout<<"股票3买入"<<endl;
}
};
//具体国债类
class NationalDebt
{
public:
void Sell()
{
cout<<"国债卖出"<<endl;
}
void Buy()
{
cout<<"国债买入"<<endl;
}
};
//具体房产类
class Realty
{
public:
void Sell()
{
cout<<"房地产卖出"<<endl;
}
void Buy()
{
cout<<"房地产买入"<<endl;
}
};
//基金类,他需要了解所有股票或者其他投资方式的方法或属性,进行组合,以备外界调用
class Fund
{
StockA* stock1;
StockB* stock2;
StockC* stock3;
NationalDebt* nationaledebt;
Realty* realty;
public:
Fund()
{
stock1 = new StockA();
stock2 = new StockB();
stock3 = new StockC();
nationaledebt = new NationalDebt();
realty = new Realty();
}
void BuyFund()
{
stock1->Buy();
stock2->Buy();
stock3->Buy();
nationaledebt->Buy();
realty->Buy();
}
void SellFund()
{
stock1->Sell();
stock2->Sell();
stock3->Sell();
nationaledebt->Sell();
realty->Sell();
}
};
//此时用户不需要了解股票,甚至可以对股票一无所知,买了基金就回家睡觉,一段时间后再赎回就可以大把钱。
//参与股票的具体买卖都由基金公司完成,客户端代码非常简洁明了。
int main()
{
Fund* jijin = new Fund();
//基金购买
jijin->BuyFund();
//基金赎回
jijin->SellFund();
system("pause");
return 0;
}
设计模式——外观模式(C++)——投资基金
最新推荐文章于 2024-07-24 15:26:16 发布