外观模式:为子系统中的一组接口提供一个一致的界面,即定义一个高层接口,使得子系统更容易使用。类图如下:
定义多个股票类,并提供买入卖出函数,定义基金类作为外观类,封装股票类实现。主要类图如下:
#include<exception>
#include <iostream>
#include<string>
//六外观模式,定义股票类和基金类
class Stock1
{
public:
void buy()
{
cout << "买入股票1" << endl;
}
void sell()
{
cout << "卖出股票1" << endl;
}
};
class Stock2
{
public:
void buy()
{
cout << "买入股票1" << endl;
}
void sell()
{
cout << "卖出股票1" << endl;
}
};
class Stock3
{
public:
void buy()
{
cout << "买入股票1" << endl;
}
void sell()
{
cout << "卖出股票1" << endl;
}
};
class Fund
{
public:
void buy()
{
m_stock1.buy();
m_stock2.buy();
m_stock3.buy();
}
void sell()
{
m_stock1.sell();
m_stock2.sell();
m_stock3.sell();
}
private:
Stock1 m_stock1;
Stock2 m_stock2;
Stock3 m_stock3;
};
int main()
{
Fund fund;
fund.buy();
fund.sell();
system("pause");
}
外观模式一般用于在开发过程中产生了越来越多的复杂的小类时,通过定义外观类来简化接口,便于使用。