首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java门面模式

文章来源:https://www.cnblogs.com/lthIU/p/5860607.html 文章内容有所改动 针对外观模式,即门面模式,在项目开发和实际应用中十分频繁,但是其极易理解,下面就简要介绍一下...简单来说,该模式就是把一些复杂的流程封装成一个接口供外部用户更简单的使用。这个模式中,涉及到3个角色。 a.门面角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。....addShutdownHook(new Thread(() -> logger.info("main thread end ..."))); } } 我们看下控制台的输出内容,看下是否符合门面模式的使用...门面模式的优点: a.松散耦合:使得客户端和子系统之间解耦,让子系统内部的模块功能更容易扩展和维护。...子系统把哪些暴露给外部的功能集中到门面中,这样就可以实现客户端的使用,很好的隐藏了子系统内部额细节。门面模式到这里就结束了,喜欢文章的可以转发文章。

27720

Java设计模式门面模式

这就是门面模式,还是比较简单的,Sub System比较复杂,为了让调用者更方便的调用,就对 Sub System 进行了封装,增加了一个门面,Client 调用时,直接调用门面的方法就可以了,不用了解具体的实现方法以及相关的业务顺序...门面模式讲解完毕,这是一个很好的封装方法,一个子系统比较复杂的实话,比如算法或者业务比较复杂,就可以封装出一个或多个门面出来,使得项目的结构简单,而且扩展性非常好。...还有,在一个较大项目中的时候,为了避免人员带来的风险,也可以使用这个模式,技术水平比较差的成员,尽量安排独立的模块(Sub System),然后把他写的程序封装到一个门面里,尽量不要让其他项目成员看到这些烂人的代码...高人”写的代码,private 方法、构造函数、常量基本都不用,你要一个 public 方法,好,一个类里就一个 public 方法,所有代码都在里面,然后你就看吧,一大坨的程序,看着能把人逼疯,使用门面模式后...本文原书: 《您的设计模式》 作者:CBF4LIFE

97240
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java外观模式(门面模式Facade)

    外观模式   外观模式也叫门面模式,是开发过程中使用频率非常高的一种设计模式,但非常容易理解。 概念介绍   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。...这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 ?...; } } 门面类 /** * 办理注册公司流程的门面对象 * @author 波波烤鸭 * @email dengpbs@163.com * */ public class RegisterFacade...Revenue c = new SzRevenue(); c.taxCertificate(); Bank d = new ICBC(); d.openAccount();*/ // 通过门面类...各种技术和框架中,都有外观模式的使用。 JDBC封装后的, commons提供的DBUtils类, Hibernate提供的工具类、 Spring JDBC工具

    1K20

    java门面模式详解

    本文先给个例子让你看懂了这个设计模式的概念,再分析这个这设计模式的优点,最后再具体的去看看实现方式。...1.一个例子来让你理解门面设计模式概念 最直观的需求是,有多个病人,病人直接挂号、划价、缴费、取药等。 ? 引入门面设计模式后,病人通过接待员,由接待员负责代为挂号、划价、缴费、取药等。 ?...2.分析门面设计模式的优点 病人直接去挂号、划价、缴费、取药,必然有些不必要的麻烦产生,相应的部门可能会处理一些跑错部门的病人,对于系统来说就如同不同的模块出现的交叉 混乱调用的情况,而相应的模块也不能专注于自己的业务...其中一个只做业务处理不直接做数据库的操作,做数据库操作的逻辑丢在了另外一个系统,通过门面模式来调用相应的数据操作。...Service2 service2) { this.service2 = service2; } } (2).另外一个系统的action调用方法的具体实现 如果你看懂了这里,那么说明上面的门面模式你入门了

    42210

    Java设计模式之(九)——门面模式

    1、什么是门面模式?...门面模式(Facade Pattern):也叫外观模式,要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。 门面模式提供一个高层次的接口,使得子系统更易于使用。...4、门面模式优点 ①、减少系统的相互依赖 如果我们不使用门面模式, 外界访问直接深入到子系统内部, 相互之间是一种强耦合关系, 你死我就死, 你活我才能活, 这样的强依赖是系统设计所不能接受的, 门面模式的出现就很好地解决了该问题...5、门面模式应用场景 ①、解决易用性问题 门面模式可以用来封装系统的底层实现,隐藏系统的复杂性,提供一组更加简单易用、更高层的接口。...6、适配器模式门面模式区别 适配器模式:主要做接口转换,解决的是原接口和目标接口不匹配的问题。 门面模式:主要做接口整合,解决的是多接口调用带来的问题。

    70430

    门面模式

    上一篇的java标准日志出现了日志门面,肯定有人会问什么是门面? 1....门面模式(Facade Pattern) 门面提供统一的接口去访问多个子系统的不同接口,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。...简单地说:通过门面就可使用该系统所有的功能,而不用接触背后复杂的关系 ? 门面模式的组成: Client(客户) Facade(门面角色) Subsystem(子系统) 2....现通过手机门面我们可将上面三步完成,而只需接触手机这个门面即可 2.1 Subsystem // 观影系统 public class MoviesSystem { public void listMovies...优势 门面让客户和子系统松耦合,所以子系统更容易扩展和维护 门面让子系统有统一上层接口,所以客户容易使用,也可自由更改子系统实现(参考日志门面

    33220

    设计模式~门面模式

    门面模式是对象的结构模式。 外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式。 什么是门面模式 门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面对象进行。...门面模式提供一个高层次的接口,使得子系统更易于使用。 门面模式的结构 ? 在这个对象图中,出现了两个角色: 门面角色(Facade): 客户端可以调用这个角色的方法。...门面模式的实现 一个系统可以有几个门面类: 在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,也就是说,它是一个单例类。...一个例子 这里从代码重构的角度演示门面模式的应用。 这里给出一个保安系统,首先给出一个系统不适用门面模式的解决方案,然后指出其缺点,再将门面模式引入,并对源代码进行改组重构。...Session门面模式 Session门面模式是J2EE模式的一种,实际上也是门面模式在J2EE框架中的应用。

    63930

    Java 设计模式系列(13) —— 外观模式(门面模式)

    外观模式(门面模式) 外观模式的定义: 要求一个子系统的外部预期内部的通信必须通过一个统一的对象进行,外观模式提供了一个高层次的接口,使得子系统更容易使用 外观模式的参与者: Client 客户端:...该门面是客户端调用子系统的桥梁。...Subsystem 子系统中定义的类:子系统是具体业务的实现,但是子系统并不需要被调用的是谁 外观模式的简单示例 Subsystem SubClassA public class SubClassA...public static void main(String[] args) { Facade f = new Facade(); f.doingA(); f.doingB(); } } 外观模式的优缺点和使用场景...外观模式的优点: 减少系统的相互依赖 提高了灵活性 提高安全性 外观模式的缺点: 不符合开闭原则 外观模式的应用场景 为一个复杂的模块或子系统提供一个供外界访问的接口 子系统相对独立 预防低水平人员带来的风险扩散

    29410

    门面模式浅析

    再如,诸多交易场景,也是需要一个客户服务的门面,完成诸如订单、支付和航运相关的服务。 ? 类似这些场景,就是我们今天要聊的门面模式可以做的事情。...一、门面模式基本介绍 1.1 意图 门面模式是一种对象结构型模式,其意图是为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。...1.2 结构 门面模式的基本结构如下: ?...countByProductKey(String productKey) { return 100L; } } 使用到的DTO类 ProductDTO - 简单的产品信息 import java.io.Serializable...productKey + ", accountId=" + accountId + "]"; } } ProductDetailDTO - 包含产品设备数的产品信息 import java.io.Serializable

    54430

    从源码角度理解Java设计模式——门面模式

    一、门面模式介绍 门面模式定义:也叫外观模式,定义了一个访问子系统的接口,除了这个接口以外,不允许其他访问子系统的行为发生。 适用场景:子系统很复杂时,增加一个接口供外部访问。...所以阿里开发手册中直接强制用SLF4J日志门面,日志门面门面模式的一个典型应用。...= null && obj instanceof java.sql.Date) { if ("java.sql.Timestamp".equals(rs.getMetaData().getColumnClassName...Tomcat 中有很多不同组件,每个组件要相互交互数据,用门面模式隔离数据是个很好的方法。在Tomcat源码中搜索Facade(门面): ?...门面模式提供了外界对子系统的访问黑箱操作,无论内部怎么变化,对外部访问者来说,还是同一个门面,同一个方法。 参考: 设计模式 | 外观模式及典型应用

    1.5K10

    设计模式门面模式

    门面(Facade)模式的定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。...门面模式又被称作外观模式,这个模式特点很鲜明,在生活中我们就能找到不少例子。...模式结构 门面模式是“迪米特法则”的应用,它的优点: 降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。...门面模式的缺点: 不能很好地限制客户使用子系统类。 增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”。...源码导读 在 servlet 中 httprequest 使用的便是门面模式;我们想要 获得请求信息或者是使用请求的一些功能的时候,我们只需要找HttpServletRequest 这个接口就行,这个接口提供了获取请求头信息

    31620

    Java设计模式:外观模式之优雅门面(九)

    Java设计模式:核心概述(一) Java设计模式:单例模式之六种实现方式详解(二) Java设计模式:工厂模式之简单工厂、工厂方法、抽象工厂(三) Java设计模式:建造者模式之经典与流式的三种实现(...四) Java设计模式:适配器模式的三种形式(五) Java设计模式:深入装饰器模式的三种写法(六) Java设计模式:组合模式之透明与安全的两种实现(七) Java设计模式:代理模式的静态和动态之分(...二、外观模式的组件 2.1. Facade(外观类) 外观类是外观模式的核心组件,它提供了客户端所需的统一接口。 外观类内部持有对子系统对象的引用,负责将客户端的请求转发给相应的子系统对象处理。...四、外观模式实现方式 我们模拟一个银行系统,其中包括账户管理、贷款服务和存款服务等多个子系统。然后使用外观模式来提供一个统一的接口给客户端使用。...总结 外观模式是一种非常实用的设计模式,它通过引入一个统一的接口来隐藏系统的复杂性,使得客户端可以更方便地使用子系统。

    14610

    【说站】java门面模式的优点

    java门面模式的优点 1、减少系统的相互依赖。如果不使用立面模式,外部访问将直接深入子系统。 这是一种强烈的耦合关系,这是系统设计无法接受的。...门面模式的出项很好地解决了这个问题,所有的依赖都是对门面对象的依赖,与子系统无关。 2、提高了灵活性。依赖减少,灵活性自然提高。 3、提高安全性。...想让你访问子系统的业务就打开那些逻辑,不在门面打开的方法就不能访问。...实例 package com.sl.demo.facade; /**  * 电脑(门面角色)  * @author pengkun  *  */ public class Computer { //包含子系统...; cpu.stop(); graphicsCard.stop(); memory.stop(); } } 以上就是java门面模式的优势,希望对大家有所帮助。更多Java学习指路:Java基础

    19340

    门面模式(Facade)

    Facade模式的几个要点 从客户程序的角度来看,Facade模式不仅简化了整个组件系统的接口,同时对于组件内部与外部客户程序来说,从某种程度上也达到了一种“解耦”的效果——内部子系统的任何变化不会影响到...Facade设计模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade很多时候更是一种架构设计模式模式结构 ?...知道哪些子系统类负责处理请求 ° 将客户的请求代理给相应的子系统对象 Subsystem Classes ° 实现子系统的功能 ° 处理由Facade对象指派的任务来协调子系统下各子类的调用方式 在外观模式中...模式图例 假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。 ? 结构.png ?

    64620

    设计模式实战-门面模式

    1、定义 本小节我们要学习的设计模式叫做外观模式,也叫做门面模式 Facade。...,门面内部的各个子系统的动作对客户是透明的,这种客户只需要调用门面接口 API 就实现了一连串内部动作(上子弹、瞄准、发射子弹、掉血、加分等)的模式其实就叫做外观模式,也叫做门面模式。...外观模式的定义是:为各个子系统的一组接口提供一致的调用窗口或门面,使得子系统更容易使用,使得复杂的子系统与客户端分离解耦。...,客户端接口调用的复杂性有所降低,并且内部系统和客户端之间解耦,使用门面模式下的“接待员”接口即可完成功能操作。...外观模式的一般类图如上所示,包含的角色列举如下: 门面角色(Facade):门面模式自然少不了门面角色,这就是我们的 Facade 类,一般情况下,该角色会将客户端的请求委派给相应的子系统去调用,也就说该角色实际没有啥实质性的业务逻辑

    42920
    领券