详解java设计模式中的门面模式

 更新时间:2022年02月02日 08:26:51   作者:Mars.wang  
门面模式又叫外观模式(Facade Pattern),主要用于隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口,本文通过实例代码给大家介绍下java门面模式的相关知识,感兴趣的朋友一起看看吧

门面模式又叫外观模式(Facade Pattern),主要用于隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。

我们知道电视剧操作很简单,但是里面的设计和原理很少人明白,这就是因为电视剧的设计应用了门面模式

一个电视剧至少需要有以下几个模块的功能:信号输入、音频处理、视频处理、信号输出等

/**
 * 射频信号输入
 */
public class SignalIn {
    //
}

 * 音频/视频信号输出
public class SignalOut {

 * 音频处理
public class AudioProcess {

 * 视频处理
public class VideoProcess {

这里面的原理只有少数专业人士才能明白,为了让普通人都能使用电视剧,我们需要给电视剧提供一个易用的接口

/**
 * 电视机
 */
public interface Television {
    /**
     * 电源开关
     */
    public void powerSwitch();

     * 切换频道
    public void channelSwitch();

     * 调节音量
    public void volumeAdjust();

}

对于大多数人而言,会开关电视,能切换频道,能调节音量就可以了,其他的原理他不需要知道,也能使用电视机。

假如我们买了一天TCL电视,它内部设计可能很复杂,只要实现了上面的接口,我们就可以使用。

/**
 * TCL电视机
 */
public class TCLTelevision implements Television{
    private SignalIn in;
    private AudioProcess audioProcess;
    private VideoProcess videoProcess;
    private SignalOut out;
    @Override
    public void powerSwitch() {
    }
    public void channelSwitch() {
    public void volumeAdjust() {
}

这就是门面模式的强大之处。隐藏复杂的逻辑,暴露易用的接口。

到此这篇关于java设计模式之门面模式的文章就介绍到这了,更多相关java门面模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决spring-boot2.0.6中webflux无法获得请求IP的问题

    解决spring-boot2.0.6中webflux无法获得请求IP的问题

    这几天在用 spring-boot 2 的 webflux 重构一个工程,写到了一个需要获得客户端请求 IP 的地方,在写的过程中遇到很多问题,下面小编通过一段代码给大家介绍解决spring-boot2.0.6中webflux无法获得请求IP的问题,感兴趣的朋友跟随小编一起看看吧
    2018-10-10
  • 基于自定义校验注解(controller、method、(groups)分组的使用)

    基于自定义校验注解(controller、method、(groups)分组的使用)

    这篇文章主要介绍了基于自定义校验注解(controller、method、(groups)分组的使用),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Spring boot搭建web应用集成thymeleaf模板实现登陆

    Spring boot搭建web应用集成thymeleaf模板实现登陆

    这篇文章主要介绍了Spring boot搭建web应用集成thymeleaf模板实现登陆,页面使用bootstrap,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 详解JAVA中转义字符

    详解JAVA中转义字符

    本篇文章主要介绍了详解JAVA中转义字符,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Spring Boot整合logback一个简单的日志集成架构

    Spring Boot整合logback一个简单的日志集成架构

    今天小编就为大家分享一篇关于Spring Boot整合logback一个简单的日志集成架构,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java使用Tess4J实现图像识别方式

    Java使用Tess4J实现图像识别方式

    这篇文章主要介绍了Java使用Tess4J实现图像识别方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • spring Cloud微服务跨域实现步骤

    spring Cloud微服务跨域实现步骤

    这篇文章主要介绍了spring Cloud微服务跨域实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java封装、继承、多态三大特征的理解

    Java封装、继承、多态三大特征的理解

    封装、继承、多态三大特征是java中比较常用的,务必要掌握,下面给大家介绍Java封装、继承、多态三大特征的理解,有不清楚的朋友可以一起学习下
    2016-06-06
  • SpringBoot集成ActiveMQ的实战全过程

    SpringBoot集成ActiveMQ的实战全过程

    消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件,这篇文章主要给大家介绍了关于SpringBoot集成ActiveMQ的相关资料,需要的朋友可以参考下
    2021-11-11
  • JAVA用递归实现全排列算法的示例代码

    JAVA用递归实现全排列算法的示例代码

    这篇文章主要介绍了JAVA用递归实现全排列算法的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论