外观模式

定义

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

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

实现

比如:要调用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();
    }
}

点评

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容