Appearance
外观模式
意图
为子系统中的一组接口提供统一的高层接口,让子系统更易使用。客户端只与外观交互,降低耦合。
类图
Java 示例
java
public class OrderService {
private final InventoryService inventory = new InventoryService();
private final PaymentService payment = new PaymentService();
private final ShippingService shipping = new ShippingService();
public void placeOrder(String sku, int qty, String addr) {
inventory.reserve(sku, qty);
payment.charge(sku, qty);
shipping.ship(sku, qty, addr);
}
}
class InventoryService {
void reserve(String sku, int qty) { System.out.println("reserve " + sku); }
}
class PaymentService {
void charge(String sku, int qty) { System.out.println("pay"); }
}
class ShippingService {
void ship(String sku, int qty, String addr) { System.out.println("ship to " + addr); }
}Spring 中常把多个 DAO/Service 封装在一个 ApplicationService 即外观思想。
下一节:享元模式