设计模式——外观模式(C++)——投资基金

#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;
}
对于复杂难以维护的老系统,直接去改或去扩展都可能产生很多问题,分成两个小组,一个开发Facade与老系统交互,另一个只要了解Facade的接口,直接开发新系统调用这些接口即可,可以减少很多不必要的麻烦。
学习来源:《大话设计模式》、《菜鸟教程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值