外观模式

定义

提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

简单点说,就是将要每次都要执行的多个方法集合起来统一执行,暴露出一个统一接口即可。

实现

比如:要调用ClassA和ClassB的doSomething方法甚至更多的方法,只用调用Facade接口的facadeMethod方法即可。

public class Client {
    public static void main(String[] args) {
        ClassA ca = new ClassA();
        ClassB cb = new ClassB();
        Facade facade = new FacadeImpl(ca, cb);
        facade.facadeMethod();
    } 
}

FacadeImpl实现如下:

public class FacadeImpl implements Facade {
    private ClassA ca;
    private ClassB cb;
    
    public FacadeImpl(ClassA ca, ClassB cb) {
        this.ca = ca;
        this.cb = cb;
    }

    @Override
    public void facadeMethod() {
        ca.doSomething();
        cb.doSomething();
    }
}

点评

所谓的外观模式,其实稍有编程经验的人都知道,这根本谈不上模式,只能说是一种推荐的编程规范,于企业来说减少产品维护成本(多处调用只用统一改一个地方)。但是,理论上这种方式带来的副作用必然是性能的消耗,然而基本可以忽略。
讲这个模式更重要的是传达一个原则:最少知识原则。即我们封装接口的时候,接口越少越好,接口暴露出的内容越少越好。

《设计模式入门与精通》系列文章源码

你可能感兴趣的:(外观模式)