详解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
0
投稿
猜你喜欢
- 1、输出矩形以此矩形案例(4行,9列的矩形)为例public static void main(String[] args) {  
- SpringBoot项目中新增脱敏功能项目背景目前正在开发一个SpringBoot项目,此项目有Web端和微信小程序端。web端提供给工作人
- public static String toUtf8String(String s) {
- 前言在Java System#exit 无法退出程序的问题一文末尾提到优雅停机的一种实现方案,要借助Shutdown Hook进行实现,本文
- 注:若是为了解决问题,可直接查看第二部分。1.安装与启动在下载安装前,请安装好JDK并配置好环境变量。ActiveMQ可到官网下载。点击进入
- 目录1、如果一个方法或变量是"private"访问级别,那么它的访问范围是:2、代码将打印?3、下面关于hibernat
- 定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类
- 这是Hadoop学习全程记录第1篇,在这篇里我将介绍一下如何在Linux下安装Hadoop1.x。先说明一下我的开发环境:虚拟机:VMwar
- 接触过Android开发的同学们都知道在Android中访问程序资源基本都是通过资源ID来访问。这样开发起来很简单,并且可以不去考虑各种分辨
- 目录首先,写一个需求文档:一、登录界面1.界面2.登录3.退出二、开始游戏界面三、缓冲加载游戏界面四、游戏主界面五、结束界面上代码首先,写一
- 前言项目流程图如下:这里我们通过:163邮箱来实现激活码发送qq邮箱来进行接收学习之前需要掌握的知识springboot的基本使用方法mys
- @ConditionalOnMissingBean,它是修饰bean的一个注解,主要实现的是,当你的bean被注册之后,如果而注册相同类型的
- 一个是新浪微博,腾讯微博的分享按钮,一个是他们的绑定情况(其实就是是否授权)。点击微博分享中新浪或腾讯按钮,就进行相应的授权(若没授权),显
- springboot启动失败的问题springboot版本是1.3.0.M1,连接的mysql版本为8,用spring-boot-start
- 1、HashMap HashMap继承抽象类AbstractMap,实现接口Map、Cloneable, Serializable接口。Ha
- maven3 安装:安装 Maven 之前要求先确定你的 JDK 已经安装配置完成。Maven是 Apache 下的一个项目,目前最新版本是
- session失效时间 在Tomcat上,session的默认有效时间是30分钟。也可以通过配置文件修改session的有效时间。
- autoMapping和autoMappingBehavior的区别autoMappingBehaviormybatis核心配置文件中set
- 注入集合(数组、List、Map、Set)类型属性(1)创建类,定义数组,list,map,set类型属性,并且生成对应的set方法。(2)
- 线程安全当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类