外观模式的目的是提供一个统一的接口,让客户端与实现细节隔离开。下面是一个简单的Java外观模式示例代码:
首先,定义一个接口,用于实现外观模式:
public interface Operation {
void performOperation();
}
然后,定义一个实现该接口的类:
public class OperationA implements Operation {
@Override
public void performOperation() {
System.out.println("执行操作A");
}
}
public class OperationB implements Operation {
@Override
public void performOperation() {
System.out.println("执行操作B");
}
}
接下来,定义一个外观类,它也实现了Operation接口,并包含了两个操作对象的引用:
public class OperationFacade implements Operation {
private OperationA operationA;
private OperationB operationB;
public OperationFacade() {
this.operationA = new OperationA();
this.operationB = new OperationB();
}
@Override
public void performOperation() {
operationA.performOperation();
operationB.performOperation();
}
}
最后,客户端代码使用外观类来执行操作:
public class Client {
public static void main(String[] args) {
OperationFacade operationFacade = new OperationFacade();
operationFacade.performOperation();
}
}
运行结果如下:
执行操作A
执行操作B
通过这种方式,客户端只需要知道有一个统一的接口Operation,而无需关心具体的实现细节。当需要增加新的操作时,只需要添加一个新的实现类,而不需要修改现有的代码。这使得代码更加灵活,易于维护。