详解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-boot 2 的 webflux 重构一个工程,写到了一个需要获得客户端请求 IP 的地方,在写的过程中遇到很多问题,下面小编通过一段代码给大家介绍解决spring-boot2.0.6中webflux无法获得请求IP的问题,感兴趣的朋友跟随小编一起看看吧2018-10-10基于自定义校验注解(controller、method、(groups)分组的使用)
这篇文章主要介绍了基于自定义校验注解(controller、method、(groups)分组的使用),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-10-10Spring boot搭建web应用集成thymeleaf模板实现登陆
这篇文章主要介绍了Spring boot搭建web应用集成thymeleaf模板实现登陆,页面使用bootstrap,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-12-12Spring Boot整合logback一个简单的日志集成架构
今天小编就为大家分享一篇关于Spring Boot整合logback一个简单的日志集成架构,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-01-01
最新评论