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. python面试-Python面试题总结
  2. 杭电1180java实现(bfs)
  3. 算法 --- 回溯法
  4. 身份证明检索失败,如何解决?
  5. 本地浏览器缓存sessionStorage(临时存储) localStorage(长期存储)的使用
  6. 识别和追踪主题层次的影响力者(来自2018 Machine Learning 论文学习笔记)
  7. 案例集锦|科技赋能,华为云GaussDB助千行百业数字化转型
  8. 解决sqlalchemy连接mysql报错ModuleNotFoundError: No module named ‘pymysql‘
  9. android kotlin类内绑定事件,Android kotlin 点击事件防重复
  10. zookeeper 虚拟机搭建好后 外部链接不上_Ubuntu Server搭建Hyperledger Fabric 2.1学习环境...
  11. c#:浅克隆和深克隆,序列化和反序列化
  12. 基于嵌入式linux路由转发功能的实现
  13. CSS文件在jsp 文件中应该放的位置
  14. f(x)=sinx的求导过程
  15. python rbf神经网络_RBF神经网络是什么?
  16. python 全国内地中高风险地区数量查询与可视化(分省)
  17. python unpack函数_python的struct.unpack函数
  18. 苹果电脑一直密码错误_您可能一直都在犯的安全和密码错误
  19. 不一样的国外广告联盟与cpa赚钱!
  20. [MySQL 源码] Innodb Pessimistic Insert流程

热门文章

  1. Android下EditText中的字体不统一问题
  2. android 解决java.nio.BufferOverflowException 异常
  3. android textView调整字体的间距和行间距
  4. Android Platform Codenames, Versions, API Levels, and NDK Releases
  5. RabbitMQ—常见报错
  6. 如何跳转指定页面后再次跳转到另一页面或原来的页面
  7. GIS+=地理信息+容器技术(4)——Docker执行
  8. 设置SecureCRT配色和解决乱码问题
  9. spring框架学习笔记(八)
  10. linux下删除文件名乱码文件