外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

    下订单要扣库存

    1. /**
    2. * @author meikb
    3. * @desc
    4. * @date 2020-05-23 15:46
    5. */
    6. public class Stock {
    7. public void desc() {
    8. System.out.println("扣库存");
    9. }
    10. }

    下订单要扣钱

    1. /**
    2. * @author meikb
    3. * @desc
    4. * @date 2020-05-23 15:50
    5. */
    6. public class Finance {
    7. public void desc() {
    8. System.out.println("扣钱");
    9. }
    10. }

    发邮件

    1. /**
    2. * @author meikb
    3. * @desc
    4. * @date 2020-05-23 15:50
    5. */
    6. public class Mail {
    7. public void send() {
    8. System.out.println("发送邮件");
    9. }
    10. }

    外观包装类

    1. /**
    2. * @author meikb
    3. * @desc 就是把复杂的功能再包装一层 供其他类调用
    4. * @date 2020-05-23 15:48
    5. */
    6. public class OrderFacade {
    7. public void createOrder(){
    8. Finance finance = new Finance();
    9. Stock stock = new Stock();
    10. Mail mail = new Mail();
    11. finance.desc();
    12. stock.desc();
    13. mail.send();
    14. }
    15. }

    主函数

    1. public class FacadeMain {
    2. public static void main(String[] args) {
    3. OrderFacade orderFacade = new OrderFacade();
    4. orderFacade.createOrder(); //调用的时候对外隐藏复杂性
    5. }
    6. }