设计模式之外观模式

目录

1.外观模式的概念

2.外观模式的结构图

3.练习的例子

4.总结


​​​​​​​

1.外观模式的概念

2.外观模式的结构图

3.练习的例子

股票1:

/**
 * 股票类1
 */
public class Stock1 {
    public void buy(){
        System.out.println("买股票");
    }

    public void sell(){
        System.out.println("卖股票");
    }
}

股票2:

/**
 * 股票类2
 */
public class Stock2 {
    public void buy(){
        System.out.println("买股票");
    }

    public void sell(){
        System.out.println("卖股票");
    }
}

 股票3:

/**
 * 股票类3
 */
public class Stock3 {
    public void buy(){
        System.out.println("买股票");
    }

    public void sell(){
        System.out.println("卖股票");
    }
}

债券:

/**
 * 债券类
 *
 */
public class NationalDebtl {
    public void buy(){
        System.out.println("买股票");
    }

    public void sell(){
        System.out.println("卖股票");
    }
}

基金类:

/**
 * 基金类
 */
public class Fund {
    private NationalDebtl nationalDebtl;
    private Stock1 stock1;
    private Stock2 stock2;
    private Stock3 stock3;


    public Fund(){
        stock1 = new Stock1();
        stock2 = new Stock2();
        stock3 = new Stock3();
        nationalDebtl = new NationalDebtl();
    }

    /**
     * 购买基金
     */
    public void buy(){
        stock1.buy();
        stock2.buy();
        stock3.buy();
        nationalDebtl.buy();
    }

    /**
     * 出售基金
     */
    public void sell(){
        stock1.sell();
        stock2.sell();
        stock2.sell();
        nationalDebtl.sell();
    }


}

客户端:

public class Test {
    public static void main(String[] args) {
        Fund fund = new Fund();
        //基金购买
        fund.buy();
        //基金赎回
        fund.sell();
    }
}

4.总结

外观Facade 可以提供一个简单的接口,减少模块之间依赖。在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但因为它包含非常重要的功能,新的需求开发必须要依赖于它。此时用外观模式 Facade也是非常合适的。可以为新系统开发一个外观 Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作。

外观类,它需要了解所有的子系统的方法或属性,进行组合,以备外界调用。


 

一句话:新模块与简单的外观进行交互,外观与复杂的子系统进行交互
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值