GOF23设计模式之外观模式

外观模式(Facade Pattern)指隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口的设计模式模式。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

其核心就是将复杂业务封装为统一接口,便于其它使用的地方调用。其实外观模式用的很频繁,开发时不经意间可能就用上了。使用它也是为了降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。比如开发之中用常见的MVC其实也就用到了这个模式,在service层写复杂业务,Controller层只调用service提供的具体接口就行了。

比如这个打印ABC的例子,ABC三个类实现了接口IShow,重写了方法show,分别打印A、B、C,普通调用的情况是如图所示:

是需要一个个new出来调相应的方法,这样就把所有类都暴露出来了,与客户端耦合度过高。而使用外观模式,只需要创建一个外观类ShowAll再统一一个接口就行了,这样客户端调时只需要与外观类交互就可以了。

package com.minant.facade;

/**
 * @ClassName ShowAll
 * @Description TODO 展示所有
 * @Author MinAnt
 * @Date 2020/5/26
 * @Version V1.0
 */
public class ShowAll {
    public void showAll() {
        IShow a = new A();
        a.show();
        IShow b = new B();
        b.show();
        IShow c = new C();
        c.show();
    }
}

执行结果显然也是一样的:

这就是外观模式。

Stay hungry stay foolish!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值