设计模式之外观模式(Facade Pattern)

概述

外观模式是比较好理解的,他提供了一个或者多个第三方接口的统一调度。

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

The Facade design pattern is often used when a system is very complex or difficult to understand because the system has a large number of interdependent classes or its source code is unavailable. This pattern hides the complexities of the larger system and provides a simpler interface to the client. It typically involves a single wrapper class which contains a set of members required by client. These members access the system on behalf of the facade client and hide the implementation details.

使用方法

设计模式之外观模式(Facade Pattern)_第1张图片
Original Code

不推荐上图使用的方法,他的意思是:现在一个BusinessSvc1中的代码无法单独表示一个业务,需要引入第二个BusinessSvc2才能处理业务。那么不应该在其中任何一个Svc里引入另一个Svc,这样不便于理解。

应该这样优化:

设计模式之外观模式(Facade Pattern)_第2张图片
Optimization Code

优缺点比较

优点: 1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。

缺点:不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。

使用场景: 1、为复杂的模块或子系统提供外界访问的模块。 2、子系统相对独立。 3、预防低水平人员带来的风险。

外观模式GitHub地址

参考

外观模式

Object-Oriented Design Patterns explained using practical examples

参考代码

你可能感兴趣的:(设计模式之外观模式(Facade Pattern))