外观模式/门面模式Facade 为了更好地划分访问的层次

public interface AModuleApi {
  public void testA();
}

public class AModuleImpl implements AModuleApi {
  public void testA() {
    System.out.println("testA");
  }
}

public interface BModuleApi {
  public void testB();
}

public class BModuleImpl implements BModuleApi {
  public void testB() {
    System.out.println("testB");
  }
}

public interface CModuleApi {
  public void testC();
}

public class CModuleImpl implements CModuleApi {
  public void testC() {
    System.out.println("testC");
  }
}

public class Facade {
  public void test() {
    AModuleApi a = new AModuleImpl();
    a.testA();
    BModuleApi b = new BModuleImpl();
    b.testB();
    CModuleApi c = new CModuleImpl();
    c.testC();
  }
}

在客户端可以直接使用下面代码:
new Facade().test();

有外观,可以不使用,直接调用模块方法。

也可以吧Facade实现成interface.此时还需要一个得到Facade接口对象的工厂。

你可能感兴趣的:(设计模式)