门面模式(Facade)
1 概念
1、定义
- 定义一个高层接口,为子系统中的一组接口提供一个一致的接口,使得子系统更加容易使用。
2、应用场景
- 想要将子系统组织成层时,使用Facade。
3、优点
- 简化客户端的调用。
2、实现
package com.xianhuii.designpattern; import java.lang.invoke.VarHandle; public class Facade { SubSystem1 subSystem1 = new SubSystem1(); SubSystem2 subSystem2 = new SubSystem2(); SubSystem3 subSystem3 = new SubSystem3(); public void doSomething() { subSystem1.method1(); subSystem2.method2(); subSystem3.method3(); } } class Client1 { // SubSystem1 subSystem1 = new SubSystem1(); // SubSystem2 subSystem2 = new SubSystem2(); // SubSystem3 subSystem3 = new SubSystem3(); // public void doSomething1() { // subSystem1.method1(); // subSystem2.method2(); // subSystem3.method3(); // } Facade facade = new Facade(); public void doSomething1() { facade.doSomething(); } } class Client2 { // SubSystem1 subSystem1 = new SubSystem1(); // SubSystem2 subSystem2 = new SubSystem2(); // SubSystem3 subSystem3 = new SubSystem3(); // public void doSomething2() { // subSystem1.method1(); // subSystem2.method2(); // subSystem3.method3(); // } Facade facade = new Facade(); public void doSomething2() { facade.doSomething(); } } class SubSystem1 { public void method1() { System.out.println("SubSystem1.method1()"); } } class SubSystem2 { public void method2() { System.out.println("SubSystem2.method2()"); } } class SubSystem3 { public void method3() { System.out.println("SubSystem3.method3()"); } }