介绍
外观模式(Facade)在开发过程中运用频率非常高。一般第三方SDK很大概率上会使用到外观模式。通常一个外观类使得整个系统的接口只有一个统一的高层接口。这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。 外观模式也是我们封装API的常用手段,例如网路模块等。
之前看ARouter实现的时候,它就很典型使用了外观模式;再有我们平时进行功能模块封装的时候,一般也会提供一个高层次的接口抽象对外提供,即解耦,又方便使用,还对用户屏蔽了复杂的实现细节。满足依赖倒置原则,又是典型的 Facade 模式的应用。
定义
要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供了一个高层次的接口,使得子系统更易于使用。
使用场景
1、为一个复杂的子系统提供一个简单接口。子系统往往因为不断演化而变得越来越复杂,甚至可能被替换。Facade 可以提供一个简单统一的接口,对外隐藏子系统的具体实现、隔离变化。
2、当你需要构建一个层次结构的子系统时,使用Facade 模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,你可以让它们仅通过Facade 接口进行通信,从而简化了它们之间的依赖关系。(其实发现跟第一点也像)
网友评论