當一次訂單的流程越來越復(fù)雜時,調(diào)用者需要了解整個業(yè)務(wù)流程及每個服務(wù)的細節(jié),這給調(diào)用帶來了風(fēng)險

水果訂單流程
外觀模式

外觀模式
耦合功能,對外只提供一個入口,封裝了業(yè)務(wù)流程,調(diào)用者不需要知道流程細節(jié)
/**
* 客戶服務(wù)一條龍
*/
public class OrderFacade {
private PickService pickService;
private PackService packService;
private SendService sendService;
public OrderFacade(){
pickService = new PickService();
packService = new PackService();
sendService = new SendService();
}
/**
* 客戶訂單處理類
*/
public void doOrder(){
//采摘
System.out.println("--------------");
pickService.doPick();
//包裝
System.out.println("--------------");
packService.doPack();
//快遞
System.out.println("--------------");
sendService.doSend();
}
}
對外只需要調(diào)用doOrder方法即可
適用場景
耦合業(yè)務(wù)模塊,方便外界調(diào)用的場景
總結(jié)
其實就是做了一層封裝