《大话设计模式》java实现之外观模式

外观模式主要是对外提供了一个统一的接口,隐藏内部的复杂操作逻辑。个人理解外观模式与命令模式的区别主要是:
1.命令模式的每一个具体的命令(ConcreteCommand)有着共同的父类或者实现了同一个接口(Command),外观模式中的各对象(如本例中的股票、国债、房地产)不一定有共同的父类或接口
2.如前面命令模式与策略模式的区别一样,命令模式有接收者,外观模式没有。
UML
这里写图片描述
代码结构
这里写图片描述

public class Client {
    public static void main(String[] args) {
        Fund fund = new Fund();
        //基金购买
        fund.buyFund();
        System.out.println("------------------");
        //基金赎回
        fund.sellFund();
    }
}
public class Fund {
    private Stock stock;
    private NationalDebt nationalDebt;
    private Realty realty;

    public Fund() {
        stock = new Stock();
        nationalDebt = new NationalDebt();
        realty = new Realty();
    }

    public void buyFund() {
        stock.buy();
        nationalDebt.buy();
        realty.buy();
    }

    public void sellFund() {
        stock.sell();
        nationalDebt.sell();
        realty.sell();
    }
}
public class NationalDebt {
    public void sell() {
        System.out.println("国债卖出");
    }

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

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

    public void buy() {
        System.out.println("股票买入");
    }
}

运行结果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值