设计模式之~外观模式

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

定义:

        为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

结构图:

设计模式之~外观模式

设计模式之~外观模式

区分中介模式:

  • 门面模式对外提供一个接口

  • 中介模式对内提供一个接口

优点:

  • 松耦合:用户与子系统解耦,屏蔽子系统;可以提高子系统的独立性;

  • 使用简单:简化用户与子系统的依赖关系;用户只与门面对接,有统一的入口,不需要知道所有子系统及内部构造。使得系统更加容易调用;

  • 更好的划分访问层次:通过合理使用Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节。

缺点:

  • 当增加子系统或者扩展子系统功能时,可能容易带来未知风险

  • 不符合开闭原则

  • 某些情况下可能会违背单一职责原则

适用场景:

  • 首先,在设计初期阶段,应该要有意识的将不同的两个层分离。

    比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观Facade,这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低。

  • 其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。

  • 第三,在维护一个一流的大系统时,可能这个系统已经非常难以维护和扩展了。但因为它包含了非常重要的功能,新的需求开发必须要依赖它。此时用外观模式Facade也是非常合适的。为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作文章来源地址https://www.toymoban.com/news/detail-466277.html

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

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

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

相关文章

  • 设计模式-外观模式

         外观模式(Facade Pattern)是属于结构型的设计模式,它的主要目的是为子系统中的一组接口提供一个统一且更简单的接口,还简化了客户端调用子系统功能的过程。 1 Facade(外观类) : Facade 类提供了对子系统的简洁、一致的接口。它包含了子系统中的多个模块或组件的

    2024年01月19日
    浏览(68)
  • 设计模式详解-外观模式

    类型:结构型模式 实现原理:定义了一个高层接口,向现有的系统中的一组接口提供一致的界面 目的:降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口,使系统更加容易使用 何时使用:简化复杂系统,方便操作 解决方法:对客户端和系统解耦,让外观类

    2024年02月12日
    浏览(34)
  • 设计模式(8)外观模式

    一、 1、使用背景:降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。 2、定义: 为子系统中的一组接口定义一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。完美地体现了依赖倒转原则和迪米特法则的思想。 3、结构

    2024年02月11日
    浏览(34)
  • 设计模式系列-外观模式

    一、上篇回顾 上篇我们主要讲述了创建型模式中的最后一个模式-原型模式,我们主要讲述了原型模式的几类实现方案,和原型模式的应用的场景和特点,原型模式 适合在哪些场景下使用呢?我们先来回顾一下我们上篇讲述的3个常用的场景。 1、我们在运行态的时候,动态的

    2024年02月09日
    浏览(35)
  • 设计模式之外观模式笔记

    记录下学习设计模式-外观模式的写法。JDK使用版本为1.8版本。 意图 :为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 结构 : 其中: Facade知道哪些子系统类负责处理请求;将客户的请求代理给适合的子系统

    2024年02月11日
    浏览(36)
  • Java设计模式-外观模式

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

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

    将复杂的功能封装成可以简单调用的方法,无需知道内部的具体逻辑,只需要知道怎么去使用 类似于一把枪,你可以不知道内部的枪机,击发机,复进簧,枪管,导气装置,弹夹是怎么合作配合完成发射和自动填弹,你只需要知道你扣动扳机就能完成这一系列复杂的操作,而那个扳机就是

    2024年02月22日
    浏览(39)
  • 设计模式之代理模式与外观模式

    目录 代理模式 简介 优缺点 角色职责 实现 运用场景 外观模式 简介 角色职责 优缺点 实现 使用场景 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介 优点:  

    2024年02月10日
    浏览(35)
  • C#设计模式之---外观模式

    外观模式(Facade Pattern)提供了一个简单且公用的接口去处理复杂的子系统,并且没有减少子系统的功能。降低子系统的复杂性,避免了客户与子系统直接链接,它也减少了子系统与子系统间的连接,每个子系统都有它的Facade模式,每个子系统采用Facade模式去访问其他子系统

    2024年02月16日
    浏览(47)
  • 《设计模式的艺术》笔记 - 外观模式

            外观模式中外部与一个子系统的通信通过一个统一的外观角色进行,为子系统中的一组接口提供一个一致的入口。外观模式定义了一个高层接口,这个接口使得子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。 myclass.h myclass.cpp main.cpp    

    2024年01月19日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包