设计模式-外观模式(Facade)
设计模式-外观模式(Facade)
概要
记忆关键词:对外统一接口
定义:为了使复杂的子系统更容易被使用,应当为子系统的众多接口提供一个简洁的高层接口。
分析:外观模式为子系统的众多接口提供了统一的高层接口,使子系统更容易使用。
类型:结构型
外观模式结构图如下:
代码示例:
public class SubSystemA { public void methodA(){ System.out.println("执行方法A"); } } public class SubSystemB { public void methodB(){ System.out.println("执行方法B"); } } public class SubSystemC { public void methodC(){ System.out.println("执行方法C"); } } public class SubSystemD { public void methodD(){ System.out.println("执行方法D"); } }
Facade类:
1 public class Facade { 2 public void comboMethodA(){ 3 SubSystemA subSystemA = new SubSystemA(); 4 SubSystemB subSystemB = new SubSystemB(); 5 SubSystemD subSystemD = new SubSystemD(); 6 subSystemA.methodA(); 7 subSystemB.methodB(); 8 subSystemD.methodD(); 9 } 10 11 public void comboMethodB(){ 12 SubSystemB subSystemB = new SubSystemB(); 13 SubSystemC subSystemC = new SubSystemC(); 14 SubSystemD subSystemD = new SubSystemD(); 15 16 subSystemC.methodC(); 17 subSystemB.methodB(); 18 subSystemD.methodD(); 19 } 20 }
一、使用场景
在电商系统中,订单处理涉及多个子系统,比如库存管理、支付系统、物流系统等。外观模式可以提供一个统一的接口来处理订单,让客户端调用更加简单。
二、总结
外观模式是非常常用的模式之一,它完美地体现了依赖倒置原则和迪米特原则的思想