2019独角兽企业重金招聘Python工程师标准>>>

模式分析:

外观模式又称为门面模式,提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。

  1. 门面(Facade)角色 :客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。
  2. 子系统(SubSystem)角色 :可以同时有一个或者多个子系统。每个子系统都不是一个单独的类,而是一个类的集合(如上面的子系统就是由ModuleA、ModuleB、ModuleC三个类组合而成)。每个子系统都可以被客户端直接调用,或者被门面角色调用。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。

一个系统可以有几个门面类

  在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,换言之它是一个单例类。当然这并不意味着在整个系统里只有一个门面类,而仅仅是说对每一个子系统只有一个门面类。或者说,如果一个系统有好几个子系统的话,每一个子系统都有一个门面类,整个系统可以有数个门面类。

模式优点:

  1. 松散耦合:门面模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。
  2. 简单易用:门面模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟门面类交互就可以了。
  3. 更好的划分访问层次:通过合理使用Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节。

转载于:https://my.oschina.net/u/2319418/blog/1609448

设计模式之外观模式(Fasade Pattern)相关推荐

  1. 如何让孩子爱上设计模式 ——11.外观模式(Facade Pattern)

    如何让孩子爱上设计模式 --11.外观模式(Facade Pattern) 标签: 设计模式初涉 场景引入 相信各位玩过LOL英雄联盟游戏的童鞋,对下面两个英雄都不会陌生吧:       分别是瑞雯和 ...

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

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

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

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

  4. Java 设计模式之外观模式

    一.了解外观模式 1.1 什么是外观模式 外观模式 (Facade Pattern) 提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口,让子系统更容易使用. 想要使用外观模式, ...

  5. 使用C#实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)

    本文的概念内容来自深入浅出设计模式一书 现实世界中的适配器(模式) 我带着一个国标插头的笔记本电脑, 来到欧洲, 想插入到欧洲标准的墙壁插座里面, 就需要用中间这个电源适配器. 面向对象的适配器 你有 ...

  6. 设计模式之外观模式php,PHP设计模式:外观模式

    前言 菜鸟教程对外观模式的描述是:外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口, ...

  7. php facade模,PHP 设计模式之外观模式 Facade

    简单描述 外观模式(Facade pattern),为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用. 外观模式又称为门面模式,它是一种对象结构型模式,遵循迪米特法则,又称最少知道原则 ...

  8. php5.1 facade,php设计模式 Facade(外观模式)

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

  9. JS常用的设计模式(7)—— 外观模式

    JS常用的设计模式(7)-- 外观模式 外观模式(门面模式),是一种相对简单而又无处不在的模式.外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用. 用一段再简单不过的代码来表示 var ...

最新文章

  1. 重磅!2019年诺贝尔生理学或医学奖揭晓,“细胞感知氧气通路”摘得桂冠
  2. 交换机的端口工作模式
  3. jQuery对象和DOM对象
  4. php 累,php 记录进行累结果
  5. C# 设置Word文档中图片的大小
  6. 消息队列,我只选RabbitMQ!
  7. 支付宝一项重要服务突然改名!官方:已启动品牌隔离,服务不受影响
  8. php 怎么看nginx,查看nginx是否启动
  9. Shell命令_for
  10. php获取两个字符,php获取两个字符串之间的子字符串
  11. docker host模式拿到nginx远程ip端口_docker网络模式实战
  12. hdu 2159 FATE
  13. python淘宝抢购脚本_Python 实现毫秒级淘宝、京东、天猫等秒杀抢购脚本
  14. 树莓派开发—语音识别功能
  15. php 增加空行,php 替换空行 不匹配空行
  16. 细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅
  17. 我赢助手手把手教您挖掘用户痛点、做到独一无二的定位
  18. 射频中的 IM3、IIP3、OIP3、G、P1dB指标之间的关系
  19. php查询更新数据库数据类型,更新Update
  20. 全球正规外汇交易平台大全

热门文章

  1. Windows常用命令行命令
  2. Application Cache manifest 的处理 (Webkit)
  3. Linux 下编译并运行C++程序
  4. 修改Windows 7默认的软件安装路径
  5. JVM学习笔记之-拉圾回收概述,垃圾回收相关算法
  6. 为RecyclerView添加下拉刷新(PullToRefresh)功能
  7. POJ 3723 - Conscription ( 最大权森林 / 最小生成树 )
  8. border绘制三角形
  9. XHTML 相对路径与绝对路径
  10. java servlet上传centos服务器