Java设计模式之门面模式

这篇具有很好参考价值的文章主要介绍了Java设计模式之门面模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

门面模式/外观模式

门面模式(Facade),它隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。通过对客户端提供一个统一的接口用于访问子系统中的一群接口。

优缺点:

1、子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统模块进行交互,只需要跟门面类交互就可以了。

2、将客户端与子系统解耦,使得子系统内部模块更容易扩展和维护

3、通过使用Facade更好的划分访问层次,有些方法是对外的,有些方法是对内的,把需要对外的功能集中到门面中,方便了客户端的调用。

效果图如下所示:

Java设计模式之门面模式

 如上图所示,子系统的使用变得更加简单,客户端只需要与Facade外观角色交互,降低了系统的  耦合。所以Facade起到了解耦作用。

包含的角色:

  • Facade 门面角色:客户端可以调用这个角色的方法,该角色知晓相关子系统的功能。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。
  • SubSystem 子系统角色:可以同时有一个或者多个子系统。每个子系统都不是一个单独的类,而是一个类的集合(如上面的子系统就是由 SubSystemA、SubSystemB、SubSystemC、SubSystemD 几个类组合而成)。每个子系统都可以被客户端直接调用,或者被门面角色调用。子系统并不知道门面的存在,对于子系统而言,门面角色仅仅是另外一个客户端而已。

案例:奥迪A4L汽车启动

如果要启动奥迪A4L,例如包括发动起启动、齿轮转动、车灯两起 三个步骤

如果不使用门面模式,那可能启动步骤都在一个方法里面写,可读性差而且不易读懂

Java设计模式之门面模式

如果使用了门面模式,三个步骤的实现类:

Java设计模式之门面模式

 门面facade类:

Java设计模式之门面模式

 测试客户端调用:

Java设计模式之门面模式

Java设计模式之门面模式

 facade类相当于Engine、Wheel、Light三个模块的外观界面,有了facade类客户端就不需要亲自调用这三个模块了,也不用知道三个模块内部实现的细节,即客户端只需要和facade交互就行。

一句话:说白了门面模式就是对代码进行方法封装文章来源地址https://www.toymoban.com/news/detail-409085.html

到了这里,关于Java设计模式之门面模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【设计模式-05】Facade门面Mediator调停者 | Decorator装饰器 | Chain Of Responsibility责任链

    一般是系统内部相互交错,比如 消息中间件(MQ) 就是这种设计模式,对各个功能或系统之间进行解耦。 业务场景:论坛或者博客发表帖子或者评论,对敏感词过滤处理。使用责任链的模式进行过滤处理。 把变化的进行封装处理 核心代码实现 GitHub - jxaufang168/Design-Patterns: 设计

    2024年01月19日
    浏览(108)
  • Java设计模式之门面模式

    门面模式/外观模式 门面模式(Facade),它隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。通过对客户端提供一个统一的接口用于访问子系统中的一群接口。 优缺点: 1、子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统模块进

    2023年04月10日
    浏览(43)
  • Java设计模式-外观模式

    在软件开发过程中,经常会遇到复杂的系统和庞大的类库。这些系统往往包含了大量的类和子系统,给开发人员带来了挑战。为了简化接口设计和提高系统的可用性,设计模式提供了一种名为外观模式的解决方案。 外观模式是一种结构型设计模式,旨在为复杂系统提供一个简

    2024年02月05日
    浏览(48)
  • Java外观设计模式

    外观模式(Facade Pattern)是一种结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。这种模式属于结构型模式,它向现有的系统添加一个接口,来隐

    2024年02月16日
    浏览(36)
  • 【Java 设计模式】结构型之外观模式

    外观模式(Facade Pattern)是一种结构型设计模式, 它为复杂系统提供了一个简化的接口,隐藏了系统的复杂性,使得客户端更容易使用系统 。外观模式通过创建一个包装类(外观类),将系统的复杂性封装起来,对客户端提供一个简单的接口。在本文中,我们将深入研究Ja

    2024年01月21日
    浏览(44)
  • 设计模式-外观模式在Java中的使用示例

    外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统 之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 示例 自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自

    2024年02月17日
    浏览(45)
  • 门面设计模式

     github:GitHub - QiuliangLee/pattern: 设计模式 门面设计模式是一种软件设计模式,也被称为外观(Facade)模式。它提供了一个简单的接口,让客户端能够访问复杂系统中的一组接口。通过门面模式,我们可以隐藏系统的复杂性,并提供一个简单的接口来访问系统。此外,门面模式

    2024年02月09日
    浏览(43)
  • 【Java面试题】设计模式之七种结构性模式——代理模式、适配器模式、桥接模式、装饰模式、外观模式、享元模式、组合模式

    目录 一、代理模式 二、适配器模式 三、桥接模式 四、装饰模式 五、外观模式 六、享元模式 七、组合模式 概念: 代理模式是为其他对象提供一种以代理控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对

    2023年04月09日
    浏览(50)
  • javascript设计模式-门面和享元

    它的作用有两个,一个是简化类的接口,另一个是消除类与使用它的客户代码之间的耦合。比如基于GUI的操作系统就是计算机的数据和功能的一个门面,每次点击等操作实际上是在跟一个门面打交道,间接地执行一些幕后的命令。 如今的WEB应用程序开发要求必须尽量提高编程

    2024年01月24日
    浏览(38)
  • 软件设计模式(二):工厂、门面、调停者和装饰器模式

            在这篇文章中,荔枝将会梳理软件设计模式中的四种:工厂模式、Facade模式、Mediator模式和装饰器Decorator模式。其中比较重要的就是工厂模式和装饰器模式,工厂模式在开发中使用的频数比较高。希望荔枝的这篇文章能讲清楚哈哈哈哈,希望能帮助到有需要的小伙

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包