Java 设计模式_外观模式
本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/76165623
用于为了隐藏系统内部,而为客户提供的统一访问系统的入口
外观模式
public class ModuleA {
public void showA(){
System.out.println("ModuleA");
}
}
public class ModuleB {
public void showB(){
System.out.println("ModuleB");
}
}
public class ModuleC {
public void showC(){
System.out.println("ModuleC");
}
}
- 假如现在系统内有3个模块类(ModuleA, ModuleB, ModuleC), 但是不想被客户直接访问
- 我们需要给客户提供一个统一的访问入口(FacadeClass)来访问该系统
public class FacadeClass {
private ModuleA moduleA;
private ModuleB moduleB;
private ModuleC moduleC;
private static FacadeClass instance;
private FacadeClass(){
moduleA = new ModuleA();
moduleB = new ModuleB();
moduleC = new ModuleC();
}
public static FacadeClass getInstance(){
if (instance == null){
synchronized (FacadeClass.class){
if (instance == null){
instance = new FacadeClass();
}
}
}
return instance;
}
public void show(){
moduleA.showA();
moduleB.showB();
moduleC.showC();
}
}
使用
public class Test {
public static void main(String[] args) {
FacadeClass.getInstance().show();
}
}