设计模式 | 外观模式

93 阅读1分钟

定义

要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,通过提供一个高层次的接口,使得子系统更易于使用。

使用场景

  • 为一个复杂子系统提供一个简单接口。
  • 构建一个层次结构的子系统时,用来定义每层的入口点。

Java 代码示例

public interface SubSystemA {
    void operate1();
    void operate2();
}

public interface SubSystemB {
    void operate1();
    void operate2();
}

public class SubSystemAImpl implements SubSystemA {
    @Override
    public void operate1() {
    }

    @Override
    public void operate2() {
    }
}

public class SubSystemBImpl implements SubSystemB {
    @Override
    public void operate1() {
    }

    @Override
    public void operate2() {
    }
}

public class System {
    private SubSystemA mSubSystemA = new SubSystemAImpl();
    private SubSystemB mSubSystemB = new SubSystemBImpl();

    public void operate1() {
        mSubSystemA.operate1();
        mSubSystemB.operate1();
    }

    public void operate2() {
        mSubSystemA.operate2();
        mSubSystemB.operate2();
    }
}