概述
外观模式(Facade Pattern)
是一种结构型设计模式,它为子系统中的一组接口提供一个统一的高层接口。这个高层接口使得子系统更加易于使用。
使用场景
- 当你希望为复杂子系统提供一个简单接口时。
- 当你需要解耦客户端代码与复杂子系统之间的依赖时。
- 当你希望子系统的各个部分能够独立地工作或替换时。
结构
外观模式包含以下几个主要部分:
- 外观(Facade):为客户端提供一个统一的接口。
- 子系统类(Subsystem Classes):实现子系统的功能。它们不知道外观的存在,对它们来说,外观只是另一个客户端。
代码实现
下面是一个 Java 实现外观模式的例子,展示了如何通过一个外观类来简化与子系统的交互。
示例代码:
// 子系统类A
class SubsystemA {
public void operationA() {
System.out.println("Subsystem A operation");
}
}
// 子系统类B
class SubsystemB {
public void operationB() {
System.out.println("Subsystem B operation");
}
}
// 子系统类C
class SubsystemC {
public void operationC() {
System.out.println("Subsystem C operation");
}
}
// 外观类
class Facade {
private SubsystemA subsystemA;
private SubsystemB subsystemB;
private SubsystemC subsystemC;
public Facade() {
this.subsystemA = new SubsystemA();
this.subsystemB = new SubsystemB();
this.subsystemC = new SubsystemC();
}
public void performOperation() {
subsystemA.operationA();
subsystemB.operationB();
subsystemC.operationC();
}
}
// 客户端代码
public class FacadePatternDemo {
public static void main(String[] args) {
Facade facade = new Facade();
facade.performOperation();
}
}