作为系统门面,编排内部模块关系,对外暴露接口,降低外部系统的使用成本。也降低系统的风险。外部系统使用本系统不需要知道内部细节,可以直接使用门面进行相应的操作。
package structuralpattern;
/**
* @author tx
* @version 1.0
* @date 2024/1/9 9:24
* @description:
* 门面模式、外观模式
*
*/
public class FacadePattern {
public static void main(String[] args) {
// 创建门面
Facade facade = new Facade();
// 使用门面
facade.run();
}
}
/**
* 系统门面,编排内部模块关系,对外暴露接口,降低外部系统的使用陈本。
*/
class Facade{
private ModuleA a;
private ModuleB b;
private ModuleC c;
public Facade() {
this.a = new ModuleA();
this.b = new ModuleB();
this.c = new ModuleC();
}
public void run(){
// 编排关系
a.a();
c.c();
b.b();
}
}
/**
* 系统中的模块 ------------------------------------
*/
class ModuleA {
public void a(){
System.out.println("模块A");
}
}
class ModuleB {
public void b(){
System.out.println("模块B");
}
}
class ModuleC {
public void c(){
System.out.println("模块C");
}
}