外i观模式:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。
模型如下图
示例:假设理财的时候,有股票、期货及债权可供投资,如果我们想进行稳定投资,那么就买债权,想高收益,买股票和期货。外部使用的时候,需要自己来调用子系统类。如果我们做个基金接口,那么外部直接调用基金这个类就可以了。
示例代码如下:
//股票
class Stock
{
public:
void BuyStock()
{
cout <<"投资股票"<<endl;
};
};
//债券
class Band
{
public:
void BuyBand()
{
cout << "投资期货"<<endl;
};
};
//期货
class Futures
{
public:
void BuyFutures()
{
cout << "投资期货"<<endl;
};
};
class Fund
{
public:
Fund()
{
pS = new Stock;
pB = new Band;
pF = new Futures;
};
~Fund()
{
delete pS;
delete pB;
delete pF;
}
void RiskFund()
{
cout <<"风险基金:"<<endl;
pF->BuyFutures();
pS->BuyStock();
};
void SteadyFund()
{
cout <<"稳健型基金:"<<endl;
pB->BuyBand();
}
private:
Stock* pS;
Band* pB;
Futures* pF;
};
void Investment()
{
//如果没有基金的话,需要自己进行组合
Stock* pS = new Stock;
Band* pB = new Band;
Futures* pF = new Futures;
pS->BuyStock();
pB->BuyBand();
pF->BuyFutures();
delete pS;
delete pF;
delete pB;
}
void main()
{
// Investment();
Fund* pFund = new Fund;
pFund->RiskFund();
cout <<"------"<<endl;
pFund->SteadyFund();
delete pFund;
return;
}