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

来源:互联网 发布:淘宝生产许可证编号qs 编辑:程序博客网 时间:2024/05/16 01:43

外观模式主要是对外提供了一个统一的接口,隐藏内部的复杂操作逻辑。个人理解外观模式与命令模式的区别主要是:
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("股票买入");    }}

运行结果
这里写图片描述

原创粉丝点击