门面模式(外观模式)

门面模式(外观模式)

定义

将一个或数个类的复杂的一切都隐藏在背后,只显露一个干净美好的门面(外观)。门面没有封装子系统的类,门面只提供简化的接口。所以客户觉得有必要,依然可以直接使用子系统的类。创建一个接口简化而统一的类,用来包装子系统中的一个或多个复杂的类。

门面模式为子系统提供了一组统一的接口,定义一组高层接口让子系统更易用。

类图

门面模式(外观模式)

总结

  1. 解决易用性问题。

    外观模式可以用来封装系统的底层实现,隐藏系统的复杂性,提供一组更加简单易用、更高层的接口。如Linux是对内核的封装。Shell命令是对Linux操作系统的封装。

  2. 解决性能问题。

    通过将多个接口调用替换为一个门面接口调用,减少网络通信成本,提高 App 客户端的响应速度。

    如果门面接口不多,我们完全可以将它跟非门面接口放到一块,也不需要特殊标记,当作普通接口来用即可。如果门面接口很多,我们可以在已有的接口之上,再重新抽象出一层,专门放置门面接口,从类、包的命名上跟原来的接口层做区分。如果门面接口特别多,并且很多都是跨多个子系统的,我们可以将门面接口放到一个新的子系统中。