介绍
提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用
示例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();
}
}
运行结果如下图:
