设计模式学习篇-Facade门面模式

Facade门面模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战

为子系统中的一组接口提供一个统一简单高层接口,这个接口使得这一子系统更加容易实用。

相当于对子模板进行适配。

 

 门面模式是对象的结构模式。门面模式没有一个一般化的类图描述,下图演示了一个门面模式的示意性对象图:

 

 

 

在这个对象图中,出现了两个角色:

门面(Facade)角色:客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。

子系统(subsystem)角色:可以同时有一个或者多个子系统。每一个子系统都不是一个单独的类,而是一个类的集合。每一个子系统都可以被客户端直接调用,或者被门面角色调用。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。

 

- 隐藏具体的实现细节,简化调用关系。
- 使得调用方的代码更加简洁明了。
- 通过facade,降低外部调用类与内部被调用类间的耦合程度。
- 可以为每个不同的任务需要,准备经过良好设计的简易的API。

 

适用性

  1.为一个复杂子系统提供一个简单接口。

 

  2.提高子系统的独立性。

 

  3.在层次化结构中,可以使用Facade模式定义系统中每一层的入口。


 

 

 

 

你可能感兴趣的:(Facade)