一、简介
外观模式
(Facade Pattern) 也称作 门面模式
,包装模式
,是一种 结构型
模式,其特点是把复杂流程通过接口封装起来,使用起来更加简单,降低系统复杂度。
二、实例
比如我们一个购物操作,需要下单,减库存,支付,记录日志,等等一系列复杂的操作还有判断,如果我们都写在一个方法里面,这样,一个方法几十上百行代码,会造成代码难以阅读维护,类似于这样
所以,我们可以通过外观模式,优化成这样
下面用代码虚拟地模拟这个流程,这里只是模拟,实际场景更加复杂
public class OrderService {
public void order(){
System.out.println("下单");
}
}
public class StockService {
public void deleteStoek() {
System.out.println("减库存");
}
}
public class PayService {
public void pay() {
System.out.println("支付");
}
}
如果我们不进行封账,那么在具体调用这些方法实现购物,想想就知道代码有多么复杂,下面我们进行一下封装
购物类,分装了以上流程
public class ShoppingService {
private OrderService orderService = new OrderService();
private StockService stockService= new StockService();
private PayService payService =new PayService();
public void shop(){
orderService.order();
stockService.deleteStoek();
payService.pay();
}
}
当我们需要实现以上流程时,即可一步到位
public class Main {
public static void main(String[] args){
ShoppingService shoppingService = new ShoppingService();
shoppingService.shop();
}
}
三、总结
优点
简单,把复杂业务流程通过接口封装起来,使用起来更加简单
解耦,让模块功能更易于维护和扩展,降低系统复杂度
缺点
业务类增多,但是利大于弊
—— 完
ABOUT
公众号:【星尘Pro】
github:https://github.com/huangliangyun