外观模式案例
2017-07-02 09:15
127 查看
题目:
请使用外观模式(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();
}
}
结果:
请使用外观模式(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();
}
}
结果:
相关文章推荐
- 外观模式案例分析
- 外观模式(FACADE)案例分析
- 设计模式案例代码之外观模式
- 设计模式之Facade(外观)
- Dot Net设计模式—适配器、桥接与外观三模式之间的关系
- Java设计模式之外观模式研究
- 没有商业模式的成功案例
- Dot Net设计模式—外观模式
- 设计模式(7)-外观模式(Facade)
- [译]The Facade Pattern外观设计模式 from Chapter 6 of《Design Patterns Explained》
- 外观模式(Facade Pattern)
- 包装外观(Wrapper Facade):用于在类中封装函数的结构型模式
- C# 设计模式--外观模式(Facade)
- 外观模式(Facade Pattern)
- 设计模式(5)-外观模式(Facade)
- Java有很多漂亮的外观模式和皮肤
- 设计模式之Facade(外观 总管 Manager)
- 设计模式之外观(Facade)---对象结构型模式
- 设计模式学习笔记(十一)——Facade外观模式
- 设计模式与泡mm的关系之Facade外观模式及外观模式的再思考