概述
外观模式 : Facade Pattern : 是一种 结构型设计模式.
它为复杂
子系统
提供一个简化的统一接口,使得客户端
无需直接与子系统的各个组件交互,从而降低系统的耦合性
。
核心思想
统一接口 :将多个子系统
的复杂操作封装到一个"外观类"
中,客户端
只需通过外观类的方法调用即可完成操作。
降低复杂度:隐藏子系统的实现细节,简化客户端代码。
个人理解 : 有点像 Service层 整合 不同的 mapper,Controller 层只需要掉一个 service 的方法即可。这样看来,实际上就是 多了一个 中间层。
角色
客户端(Client) :调用外观类的代码。
外观类(Facade) :定义简化接口,协调子系统的操作。
子系统(Subsystems):具体实现类,负责完成实际业务逻辑。
类图

案例
驾驶员 启动汽车的时候,只需要 按一下启动键,汽车的引擎会发动、仪表盘也会启动;无需 驾驶员 单个系统去操作。
子系统-引擎类
java
public class Engine {
public void start() {
System.out.println("engine start");
}
}
子系统-仪表盘类
java
public class Dashboard {
public void start(){
System.out.println("dashboard start ... ");
}
}
外观类 - 启动键
java
public class CarStarter {
private Engine engine;
private Dashboard dashboard;
public CarStarter()
{
engine = new Engine();
dashboard = new Dashboard();
}
// todo 就是这个方法,核心,对子系统的整合。
public void start()
{
engine.start();
dashboard.start();
}
}
客户端-驾驶员
java
public class User {
public static void main(String[] args) {
CarStarter carStarter = new CarStarter();
// 一键启动汽车
carStarter.start();
}
}
运行结果:
engine start
dashboard start ...