介紹
提供一個統一的接口,用來通路子系統中的一群接口,外觀定義了一個高層接口,讓子系統更容易使用
示例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();
}
}
運作結果如下圖:
