外观模式(Facade Pattern)是一种结构型设计模式,它为复杂的子系统提供一个简单的接口,使得客户端可以更方便地使用该子系统。外观模式通过将子系统的复杂性隐藏在一个简单的接口后面,使得客户端可以更加容易地使用该子系统,同时也降低了客户端与子系统之间的耦合度。
下面是一个简单的外观模式的示例代码:
// 子系统A class SubSystemA { public void methodA() { System.out.println("SubSystemA methodA"); } } // 子系统B class SubSystemB { public void methodB() { System.out.println("SubSystemB methodB"); } } // 子系统C class SubSystemC { public void methodC() { System.out.println("SubSystemC methodC"); } } // 外观类 class Facade { private SubSystemA subSystemA; private SubSystemB subSystemB; private SubSystemC subSystemC; public Facade() { subSystemA = new SubSystemA(); subSystemB = new SubSystemB(); subSystemC = new SubSystemC(); } public void method() { subSystemA.methodA(); subSystemB.methodB(); subSystemC.methodC(); } } // 客户端 public class Client { public static void main(String[] args) { Facade facade = new Facade(); facade.method(); } }
在上面的代码中,我们定义了三个子系统类 SubSystemA、SubSystemB 和 SubSystemC,它们分别实现了各自的方法。然后我们定义了一个外观类 Facade,它包含了这三个子系统的实例,并提供了一个方法 method,该方法调用了这三个子系统的方法。最后,我们在客户端中创建了一个 Facade 实例,并调用了它的 method 方法。
通过使用外观模式,我们可以将复杂的子系统封装起来,使得客户端可以更加方便地使用它们。同时,外观模式也可以降低客户端与子系统之间的耦合度,使得系统更加灵活和易于维护。