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)相关推荐

  1. .net 有哪些主流的设计模式_「设计模式自习室」门面模式 Facade Pattern

    前言 <设计模式自习室>系列,顾名思义,本系列文章带你温习常见的设计模式.主要内容有: 该模式的介绍,包括: 引子.意图(大白话解释) 类图.时序图(理论规范) 该模式的代码示例:熟悉该模 ...

  2. 【设计模式自习室】门面模式 Facade Pattern

    前言 <设计模式自习室>系列,顾名思义,本系列文章带你温习常见的设计模式.主要内容有: 该模式的介绍,包括: 引子.意图(大白话解释) 类图.时序图(理论规范) 该模式的代码示例:熟悉该模 ...

  3. 结构型模式(五)门面模式(Facade Pattern 外观模式)

    一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...

  4. 软件设计模式-门面设计模式

    门面设计模式 门面模型(facade pattern)又称外观模型,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,简而言之就是把一堆复 ...

  5. 设计模式——Facade

    一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...

  6. 设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用

    文章目录 Pre 定义 案例 Demo V1.0 Boss直接管理 V2.0 引入外观类 PmManagerFacade 何时使用Facade Tomcat Mybatis Pre 我们先来回顾下门面 ...

  7. C++设计模式——门面模式(facade pattern)

    一.原理讲解 门面模式也叫做外观模式,实质就是一个封装接口,通常是将一类功能或者一个层次功能用一个函数封装起来,供客户端统一调用. 1.1意图 为子系统中的一组接口提供一个一致的界面,Facade模式 ...

  8. 设计模式之- 外观模式(Facade Pattern)

    外观模式 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加 ...

  9. 外观模式 门面模式 Facade 结构型 设计模式(十三)

    外观模式(FACADE) 又称为门面模式 意图 为子系统中的一组接口提供一个一致的界面 Facade模式定义了一个高层接口,这一接口使得这一子系统更加易于使用. 意图解析 随着项目的持续发展,系统基本 ...

最新文章

  1. 数十名工程师作战5天,阿里达摩院连夜研发智能疫情机器人
  2. 021Python路--单例设计模式
  3. DL之GRU:GRU算法相关论文、建立过程(基于TF)、相关思路配图集合、TF代码实现
  4. MySQL--Delete语句别名+LIMIT
  5. mysql表打包到程序中_C#/winform程序打包布署 如何把SQL 数据库 一起打包进去?
  6. python queue 生产者 消费者_【python】-- 队列(Queue)、生产者消费者模型
  7. 华为麦芒5云空间升级_云+AI+5G 华为云联手中软国际引爆线下门店智能化升级
  8. Spring Cloud构建微服务架构—服务网关过滤器
  9. 一个学习爱好者,应该怎么学习golang
  10. python根据字符串实例化对象_解密 Python 中的对象模型
  11. c/c++ 基本线程管理 join detach
  12. js数组去重(for循环去遍历源数组)
  13. OneNote2016 解决 OneNoteGem 插件 选项卡消失的问题
  14. ILSVRC历届冠军论文笔记
  15. 微型计算机存储器cache,微型计算机存储器系统中的Cache是
  16. 使用Gstreamer播放未知格式视频(python)
  17. 国开网计算机应用基础模块4,2020春国开《-计算机应用基础》模块4 PowerPoint2010客观题...
  18. 解决 error: called object ‘xxx‘ is not a function or function pointer
  19. 人工智能术语库分享(包括彩云小译分享码)
  20. 如何维护注册表?(二)

热门文章

  1. el-checkbox同时获取value 和 name
  2. 第1143期AI100_机器学习日报(2017-11-04)
  3. 一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)
  4. 苹果蓝牙日志如何获取
  5. 明天! Imagination邀您共聚AIIA2020人工智能开发者大会
  6. 【Linux】必须掌握的Linux常见指令分类讲解
  7. Python|自制二维码生成器
  8. 【考研】计算机考研,我不建议考408
  9. 智慧运维解决方案-最新全套文件
  10. knex入门学习使用方法