门面设计模式(Facade Pattern)
GOF设计模式
Facade Pattern
门面设计模式
门面模式例子:我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整,这样MM也可以用这个相机给我拍张照片了。
Facade类其实相当于A、B、C模块的外观界面,有了这个Facade类,那么客户端就不需要亲自调用子系统中的A、B、C模块了,也不需要知道系统内部的实现细节,甚至都不需要知道A、B、C模块的存在,客户端只需要跟Facade类交互就好了,从而更好地实现了客户端和子系统中A、B、C模块的解耦,让客户端更容易地使用系统。
public class Module1 {public void test1(){System.out.println("调节1项");}
}
public class Module2 {public void test2(){System.out.println("调节2项");}
}
public class Facade {public void test(){Module1 a=new Module1();Module2 b=new Module2();a.test1();b.test2();}
}
public class Test {public static void main(String[] args) {Facade facade=new Facade();facade.test();}
}
这样,在Test中实例化Facade,可以直接得到1,2两个模块的结果。
注意facade读音呦~[fə'sɑːd]
门面设计模式(Facade Pattern)相关推荐
- .net 有哪些主流的设计模式_「设计模式自习室」门面模式 Facade Pattern
前言 <设计模式自习室>系列,顾名思义,本系列文章带你温习常见的设计模式.主要内容有: 该模式的介绍,包括: 引子.意图(大白话解释) 类图.时序图(理论规范) 该模式的代码示例:熟悉该模 ...
- 【设计模式自习室】门面模式 Facade Pattern
前言 <设计模式自习室>系列,顾名思义,本系列文章带你温习常见的设计模式.主要内容有: 该模式的介绍,包括: 引子.意图(大白话解释) 类图.时序图(理论规范) 该模式的代码示例:熟悉该模 ...
- 结构型模式(五)门面模式(Facade Pattern 外观模式)
一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...
- 软件设计模式-门面设计模式
门面设计模式 门面模型(facade pattern)又称外观模型,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,简而言之就是把一堆复 ...
- 设计模式——Facade
一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...
- 设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
文章目录 Pre 定义 案例 Demo V1.0 Boss直接管理 V2.0 引入外观类 PmManagerFacade 何时使用Facade Tomcat Mybatis Pre 我们先来回顾下门面 ...
- C++设计模式——门面模式(facade pattern)
一.原理讲解 门面模式也叫做外观模式,实质就是一个封装接口,通常是将一类功能或者一个层次功能用一个函数封装起来,供客户端统一调用. 1.1意图 为子系统中的一组接口提供一个一致的界面,Facade模式 ...
- 设计模式之- 外观模式(Facade Pattern)
外观模式 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加 ...
- 外观模式 门面模式 Facade 结构型 设计模式(十三)
外观模式(FACADE) 又称为门面模式 意图 为子系统中的一组接口提供一个一致的界面 Facade模式定义了一个高层接口,这一接口使得这一子系统更加易于使用. 意图解析 随着项目的持续发展,系统基本 ...
最新文章
- 数十名工程师作战5天,阿里达摩院连夜研发智能疫情机器人
- 021Python路--单例设计模式
- DL之GRU:GRU算法相关论文、建立过程(基于TF)、相关思路配图集合、TF代码实现
- MySQL--Delete语句别名+LIMIT
- mysql表打包到程序中_C#/winform程序打包布署 如何把SQL 数据库 一起打包进去?
- python queue 生产者 消费者_【python】-- 队列(Queue)、生产者消费者模型
- 华为麦芒5云空间升级_云+AI+5G 华为云联手中软国际引爆线下门店智能化升级
- Spring Cloud构建微服务架构—服务网关过滤器
- 一个学习爱好者,应该怎么学习golang
- python根据字符串实例化对象_解密 Python 中的对象模型
- c/c++ 基本线程管理 join detach
- js数组去重(for循环去遍历源数组)
- OneNote2016 解决 OneNoteGem 插件 选项卡消失的问题
- ILSVRC历届冠军论文笔记
- 微型计算机存储器cache,微型计算机存储器系统中的Cache是
- 使用Gstreamer播放未知格式视频(python)
- 国开网计算机应用基础模块4,2020春国开《-计算机应用基础》模块4 PowerPoint2010客观题...
- 解决 error: called object ‘xxx‘ is not a function or function pointer
- 人工智能术语库分享(包括彩云小译分享码)
- 如何维护注册表?(二)