外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
使用场景:
- 为复杂的模块或子系统提供外界访问的模块。
- 子系统相对独立。
- 预防低水平人员带来的风险。
优点:
- 减少系统相互依赖。
- 提高灵活性。
- 提高了安全性。
缺点:
不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。
实现上:
某业务可能需要调用多个接口,可以定义一个外观类,对外提供一个接口调用,其内部封装对多个接口的调用。
或者,提供多个接口,分别对应下游的多个接口。从客户端来看,只知道一个外观类,并不知道是调用了多个下游的接口。
注意:
外观模式和适配器模式有一定的相似处,只是出发点不同。适配器是从适配角度出发,进行兼容处理,转换差异;外观模式是从提供统一接口出发,屏蔽内部细节。