简单的外观模式,一句话概括“组合多个复杂对象,提供一致入口,外界访问简单”

外观模式

    1、什么是外观模式

              为多个复杂的子系统提供一个一致的外观接口入口,而使这些子系统更加容易被访问,就比如此时现在有一个下单功能,需要增加订单,减库存,等等操作,此时用户调用多个比较麻烦,这时就比较适合使用外观模式。

    2、与建造者模式区别

              此时发现外观模式和建造者模式很像,都是包装子方法,给外界提供一个唯一的入口,方便调用者调用,但是其中的区别在于,建造者模式可能会有多种类进行实现,比如可以创建平房也可以创建楼房,但是外观模式就不注重创建,只关注将多个对象组合,

            以方便调用者调用。

    3、代码实现

             以下使用订单下单和取消订单为例子,展示用外观模式将订单系统和库存系统同时在外观类中调用的情况

            1、创建订单系统

public class OrderSystem {

    public void submit(){
        System.out.println("下单");
    }

    public void cancel(){
        System.out.println("取消订单");
    }

}

            2、创建库存系统

public class StockSystem {

    public void out(){
        System.out.println("库存出库");
    }
    public void in(){
        System.out.println("库存入库");
    }
}

            3、外观对象,核心是对外暴露接口,使外界可以直接调用外观对象中的方法,实现下单要处理的所有内容

//外观对象
public class Facade {

    private OrderSystem orderSystem = new OrderSystem();
    private StockSystem stockSystem = new StockSystem();

    //下单方法
    public void submit(){
        orderSystem.submit();
        stockSystem.out();
    }
    //取消订单方法
    public void cancel(){
        orderSystem.cancel();
        stockSystem.in();
    }
}

           4、直接使用外观类进行调用,此时调用者就十分简单

    public static void main(String[] args) {
        Facade facade = new Facade();
        //下单
        facade.submit();
        //取消订单
        facade.cancel();
    }

猜你喜欢

转载自blog.csdn.net/qq_38384460/article/details/111735387