详解java设计模式中的门面模式
作者:Mars.wang 发布时间:2021-08-17 18:16:25
标签: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() {
}
这就是门面模式的强大之处。隐藏复杂的逻辑,暴露易用的接口。
来源:https://www.cnblogs.com/wangbin2188/p/15860045.html


猜你喜欢
- 这将会是一篇比较 * 的文章,当你想在某个人的生活中制造悲剧时你可能会去google搜索它。在Java的世界里,内存溢出仅仅只是你
- 1. 介绍结合上面的ReentrantLock类图,ReentrantLock实现了Lock接口,它的内部类Sync继承自AQS,绝大部分使
- 我这里主要是对串口类的简单使用,实现的功能是以读写方式打开串口,点击发送数据按钮将发送区的数据发送到缓冲区,然后在接收区显示出来,界面如下:
- 在代码中进行命令行交互是一个很常见的场景, 特别是在一些CI CD 自动化流程中, 在这之前我们会使用 System.Diagnostics
- 一、概述我们对于这个图片肯定会非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构。在数据结构中我们了解到可以
- 前言Android12 有很多令人惊喜的变化,比如基于 Material You 的全新 UI,基于 SplashScreen 的应用启动画
- 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类。但找了好多篇博客,总是发现有bug。因此就自己来写了个工具类
- 详解java 中Spring jsonp 跨域请求的实例jsonp介绍  
- 功能描述上传照片文件名及是系统要识别标签或是照片的名称(人物标识)提取照片脸部特征值(调用 facemesh模型)保存特征值添加样本(调用
- 本文参考于《深入理解Java虚拟机》内存分配与回收策略Java技术体系的自动内存管理,最根本的目标是自动化地解决两个问题:自动给对象分配内存
- 概述线程池的好处和使用本篇文章就不赘叙了,不了解的可以参考下面两篇文章:一文全貌了解线程池的正确使用姿势学习线程池原理从手写一个线程池开始那
- 为什么需要全局异常处理在传统 Spring Boot 应用中, 我们 @ControllerAdvice 来处理全局的异常,进行统一包装返回
- 在WPF里用MediaElement控件,实现一个循环播放单一视频的程序,同时可以控制视频的播放、暂停、停止。一种方式,使用MediaEle
- 我的接口是这样的:TestCase测试Impl类的方法没有问题,但是Swgger和前端调用接口就会报404错误:在网上查了很多资料,都说是地
- 这个很基础的知识,但我至今才意识到它。想想也很失败。直接上代码:很简单public class Base
- 我们在日常开发时会经常遇到将一个字符串按照指定的字符进行分割。这时,我们往往会想到使用str.split(","),进行
- 本文实例讲述了Java Base64算法实际应用之邮件发送。分享给大家供大家参考,具体如下:一 利用telnet和Base64来实现收发邮件
- 下截JNative组件jnative.sourceforge.net/ 到这里下载JNative开源项目,我下载的是1.3.2解压JNati
- 配置文件概述:应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改
- 本文和大家一起写一个Android图片轮播控件,供大家参考,具体内容如下1. 轮播控件的组成部分 我们以