跳到主要内容

设计模式

外观模式(Facade [fəˈsɑːd])​

外观模式与其说是一种设计模式,不如说是一种设计原则。

外观模式就是接口封装,只不过侧重于减少接口表面积和简化子系统的使用,带来简化接口、隐藏内部复杂性、降低耦合性等好处。

和一般封装区别:

  • 一般封装:封装通常是为了隐藏实现细节,控制类的内部状态对外界的暴露,通常围绕一个对象或模块进行。
  • 外观模式:外观模式的目标是简化子系统的使用,尤其是在多个子系统协作的情况下。它的重点是组合和协调多个子系统,提供一个更高层次的统一接口。

和适配器模式区别:

  • 适配器模式:它用于将一个类的接口转换为客户端期望的另一个接口,主要用于接口不兼容的情况下。适配器关注的是接口的“兼容性”问题。
  • 外观模式:它提供一个简化的统一接口,主要用于简化与复杂子系统的交互,而不涉及接口转换。

和代理模式区别:

  • 代理模式:代理模式的主要目的是控制对对象的访问,它可能会在对象访问前进行某些额外操作(如权限控制、缓存、懒加载等)。
  • 外观模式:外观模式的重点是简化接口,它不会对对象的访问做额外的控制或干预,只是提供了一个更高层次的入口。