门面模式

Posted simple-ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了门面模式相关的知识,希望对你有一定的参考价值。

门面模式

       门面模式又叫外观模式。外部与一个子系统通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的借口,使子系统更易于使用。

 

1.结构

  门面系统没有一般化的结构,但是每个门面系统至少都含有两个重要角色:门面角色和系统角色。

  • 门面角色(Facade):

  与客户端通信的角色。门面角色知晓相关子系统的功能和责任。农场客户端的请求被门面角色委派到相应的子系统当中。门面角色通常是一个单利类。一个系统中有多个子系统,每个子系统可以有一个门面类。

  • 子系统角色(Subsystem):

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

  这里的“子系统”并非是一定是项目结构中的系统,可以理解为系统中的模块。例如订单系统包含订单信息模块(子系统)、商品信息模块(子系统)、售后服务信息模块(子系统)等。

 

2.例子:

  不使用门面模式:

技术分享图片

 

  使用门面模式:

技术分享图片

 

3.小结

       门面模式是对客户端的松耦合,将客户端使用到的多个对象抽象到一个门面类中,从而将客户端请求由门面类委派到子系统中。

 

以上是关于门面模式的主要内容,如果未能解决你的问题,请参考以下文章

门面模式

javaEE设计模式——门面模式

设计模式之门面模式与装饰器模式详解和应用

设计模式之门面模式(外观模式)

设计模式之门面模式(外观模式)

PHP设计模式 - 门面模式