Java 外观模式是一种结构性设计模式,它提供一个高层次的界面,让客户端能够更方便地访问子系统中的一组接口。外观模式将多个复杂子系统进行封装,使得客户端只需与外观对象交互,而不需要直接与子系统中的各个组件交互。
下面是一个简单的 Java 外观模式示例:
class Subsystem1 {
public void operation1() {
System.out.println("Subsystem1 operation1");
}
}
class Subsystem2 {
public void operation2() {
System.out.println("Subsystem2 operation2");
}
}
class Subsystem3 {
public void operation3() {
System.out.println("Subsystem3 operation3");
}
}
class Facade {
private Subsystem1 subsystem1;
private Subsystem2 subsystem2;
private Subsystem3 subsystem3;
public Facade() {
subsystem1 = new Subsystem1();
subsystem2 = new Subsystem2();
subsystem3 = new Subsystem3();
}
public void operationWrapper() {
subsystem1.operation1();
subsystem2.operation2();
subsystem3.operation3();
}
}
public class FacadePatternDemo {
public static void main(String[] args) {
Facade facade = new Facade();
facade.operationWrapper();
}
}
在上面的示例中,Subsystem1、Subsystem2 和 Subsystem3 是多个具有复杂逻辑的子系统组件。Facade 类是一个外观类,它封装了多个子系统组件的操作,并提供一个 operationWrapper() 方法作为客户端访问这些子系统组件的接口。
在 main() 方法中,我们创建了一个外观对象 facade 并调用其 operationWrapper() 方法。客户端只需要与外观对象交互,而不需要直接与子系统组件交互。当客户端调用 operationWrapper() 方法时,它将同时调用子系统组件的操作。
运行以上代码,输出结果如下:
Subsystem1 operation1
Subsystem2 operation2
Subsystem3 operation3
其中,Subsystem1、Subsystem2 和 Subsystem3 的操作都被封装在 Facade 类的 operationWrapper() 方法中进行了统一的管理和调用。这样可以避免客户端直接操作子系统组件带来的复杂性和风险,提高了软件系统的可维护性和易用性。
================================
如果文章对你有帮助,不要忘记加个关注、点个赞!!!必回关!!!