外观模式案例

来源:互联网 发布:光环大数据怎么样 编辑:程序博客网 时间:2024/05/20 07:49

题目:

请使用外观模式(Facade)模拟基金公司代买股票(Stock)、

国债(NationalDebt)、房地产(Realty)的实例

股票有两种,分别为高风险高收益股票和低风险低收益股票;

股票、基金、国债都有2个方法:买入(buy)和卖出(sell)

买入和卖出都用输出语句表示即可。

(比如房地产的buy函数就输出:房地产买入;房地产的sell函数就输出:房地产卖出)

基金公司为用户定制两种金融方案,分别是:

一、高风险方案:

包含高风险买入(BuyHighRiskFund)和高风险卖出(SellHighRiskFund)两方法

调用的是高风险高收益股票和房地产对应的买,卖函数。

一、低风险方案:

包含低风险买入(BuyLowRiskFund)和低风险卖出(SellLowRiskFund)两方法。

调用的是低风险低收益股票和国债对应的买,卖函数。

类图:



代码:

package Facade;

//基金公司
class Gongsi {
    private Stock stock=new Stock();    
    private NationalDebt nationalDebt=new NationalDebt();
    private Realty realty=new Realty();
//    高风险买入方案
    public void highBuy(){
        stock.highBuyStock();
        realty.buy();
    }
//    高风险买出方案    
    public void highSell(){
        stock.highSellStock();
        realty.sell();
    }
//    低风险买入方案    
    public void lowBuy(){
        stock.lowBuyStock();
        nationalDebt.buy();
    }
//    低风险买出方案    
    public void lowsSell(){
        stock.lowSellStock();
        nationalDebt.buy();
    }
    
    
}

//国债
class NationalDebt {
    public void buy(){
        System.out.println("国债买入");
    }
    
    public void sell(){
        System.out.println("国债买出");
    }
}

//房地产
class Realty {

    public void buy(){
        System.out.println("房地产买入");
    }
    
    public void sell(){
        System.out.println("房地产买出");
    }


}
//股票
 class Stock {
    //买入高风险高收益股票
        public void highBuyStock(){    
            System.out.println("买入高风险高收益股票");    
        }
        //卖出高风险高收益股票
        public void highSellStock(){
            System.out.println("卖出高风险高收益股票");    
        }
        //买入低风险高收益股票
        public void lowBuyStock(){    
            System.out.println("买入低风险高收益股票");    
        }
        //卖出低风险高收益股票
        public void lowSellStock(){
            System.out.println("卖出低风险高收益股票");    
            
            }
        

    }

public class Facade {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Gongsi gs=new Gongsi();
        System.out.println("用户告诉基金公司进行说明业务");
        //高风险买入
        System.out.println("------------高风险方案买入------------");
        gs.highBuy();
        //高风险卖出
        System.out.println("------------高风险方案卖出------------");
        gs.highSell();
        //低风险买入
        System.out.println("------------低风险方案买入------------");
        gs.lowBuy();    
        //低风险卖出
        System.out.println("------------低风险方案卖出------------");
        gs.lowsSell();
    }

}

结果: