天天看點

外觀模式Facade示例demo

介紹

提供一個統一的接口,用來通路子系統中的一群接口,外觀定義了一個高層接口,讓子系統更容易使用

示例demo

背景:對外提供訂單下單和出單兩個接口

各種子系統

賬戶子系統:

public class Account {
    public void createAccount() {
        System.out.println("建立賬戶");
    }

    public void updateAccount() {
        System.out.println("更新賬戶餘額");
    }
}
           

訂單子系統:

public class Order {
    public void preOrder() {
        System.out.println("下單了");
    }

    public void issueOrder() {
        System.out.println("出單了");
    }
}
           

商品子系統:

public class Good {
    public void lockStore() {
        System.out.println("鎖定庫存");
    }

    public void updateStore() {
        System.out.println("更新庫存");
    }
}
           

對外提供統一接口Facade

處理訂單相關Facade:

public class DealOrderFacade {
    private Account account = new Account();
    private Order order = new Order();
    private Good good = new Good();

    public void createOrder() {
        //1、建立賬戶
        account.createAccount();
        //2、生成訂單
        order.preOrder();
        //3、鎖定庫存
        good.lockStore();
    }

    public void payOrder() {
        //1、更新賬戶
        account.updateAccount();
        //2、更新訂單
        order.issueOrder();
        //3、更新庫存
        good.updateStore();
    }
}
           

測試類:

public class FacadeTest {
    public static void main(String[] args) {
        DealOrderFacade facade = new DealOrderFacade();

        facade.createOrder();

        System.out.println("***********************************");

        facade.payOrder();
    }
}
           

運作結果如下圖:

外觀模式Facade示例demo

繼續閱讀