外观模式核心:为子系统提供统一的入口,封装子系统的复杂性,便于客户端的调用。

开发中常见的场景:频率很高,哪里都会遇到。各种技术和框架中,都有外观模式的使用。

         如:JDBC封装后的,commons提供的DBUtils类,Hibernate提供的工具类、Spring JDBC工具类等。


例:

1. 创建工商局接口,海淀区工商局类实现该接口

2. 创建税务局接口,海淀区税务局类实现该接口

3. 创建银行接口,中国工商银行类实现该接口

4. 创建质检局接口,海淀区质检局类实现该接口

5. 创建RegisterFacade类,用来办理注册公司流程的门面对象

6. 创建Client测试类

结果:

检查名字是否有冲突。
在海淀区质检局办理组织机构代码证。
在海淀区税务局办理税务登记证。
在中国工商银行开户。

UML图:

转载于:https://www.cnblogs.com/zhangtianq/p/6095815.html

设计模式(十)外观模式相关推荐

  1. 从王者荣耀看设计模式(十.外观模式)

    ##从王者荣耀看设计模式(外观模式) 一.简介 王者荣耀是由多人协同开发而成,每个人负责游戏的一个或多个子功能,一个完整的功能是由很多已开发的子功能组合成的.我们要玩游戏时,只需要打开王者荣耀APP, ...

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

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

  3. Swift 中的设计模式 #3 外观模式与适配器模式

    作者:Andrew Jaffee,原文链接,原文日期:2018-09-04 译者:郑一一:校对:BigNerdCoding,pmst,Forelax:定稿:Forelax 本文是我的设计模式系列教程的 ...

  4. Javascript 设计模式之外观模式【讲师辅导】-曾亮-专题视频课程

    Javascript 设计模式之外观模式[讲师辅导]-770人已学习 课程介绍         随着 javascript ES6/7 的发布,很多老版本的设计模式的实现,今天来看是错误的,将被彻底. ...

  5. 移动开发 | Swift 中的设计模式 #3 外观模式与适配器模式

    本文是我的设计模式系列教程的第三篇.在第一篇文章中,我介绍了 创建型模式中的工厂模式和单例模式.在第二篇文章中,又讨论了一下 行为型模式中的观察者模式和备忘录模式. 在本文中,我会就结构型模式中的外观 ...

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

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

  7. [设计模式C++]外观模式

    系列文章总结一些比较常见的设计模式,外观模式是由GoF提出的23种设计模式的一种,使用非常简单. 2021-09-16 增加一个例子 区别于代理模式,都像是插入第三者,但是外观模式是统筹管理子系统,就 ...

  8. 研磨设计模式之外观模式(Facade)(解决方案)

    3.2  解决方案 3.2.1  外观模式来解决 用来解决上述问题的一个合理的解决方案就是外观模式.那么什么是外观模式呢? (1)外观模式定义 这里先对两个词进行一下说明,一个是界面,一个是接口. 界 ...

  9. 设计模式之外观模式php,php设计模式(十五)外观模式

    外观模式又叫门面模式: 现在都是模块化开发了: 开发中很多时候都是在使用各种扩展包: 或者在外观模式中我们叫做子系统: 外观模式的作用就是减少子系统之间的耦合: 降低子系统的使用难度: 我们举个栗子: ...

  10. 第十二章 PHP设计模式之外观模式

    //子系统1 class SubSystemOne {public function methodOne(){echo "子系统方法1\n";} }//子系统2 class Sub ...

最新文章

  1. 和12岁小同志搞创客开发:如何选择合适的控制器?
  2. Neighbor-Vote:使用邻近距离投票优化单目3D目标检测(ACM MM2021)
  3. Python模块包中__init__.py文件的作用
  4. RunTime运行时在iOS中的应用之UITextField占位符placeholder
  5. vue3.0中使用计算属性时报错
  6. Java 获取当前时间
  7. MFC中快速应用OpenCV教程
  8. Algorithm——1.排序.md
  9. 小程序【笔记002】逻辑层简介
  10. 工业机器人维保调查表_《工业机器人系统集成及维护》课程建设调研报告
  11. HarmonyOS 编译系统源码
  12. 项目启动时,出现了Consider defining a bean of type ‘xxx’ in your configuration 问题。
  13. 【20220825】【数学基础】用最小二乘法求解超定方程组
  14. Python+Django开发游戏充值管理后台
  15. Umbraco 非常简单,扩展性很强的一个CMS
  16. php中html插入图片,html插入图片的示例代码详解(图)
  17. 【GANs学习笔记】(十六)CGAN、TRIPLEGAN
  18. php 中等职业教材,中等职业教育计算机专业系列教材
  19. mac 小程序开发者工具。 tunneling socket could not be established
  20. Spark获取CSV文件导入ClickHouse

热门文章

  1. c# 从sql 数据库生成 excel (转)
  2. 考拉Android统一弹框
  3. 数据共享,回调函数,threading模块,守护线程
  4. memset()函数
  5. 打造云上深度学习实验室
  6. 30个要点帮你完成java代码优化
  7. python 学习day3
  8. centos7使用记录
  9. OCS2007标准版服务器部署
  10. 不同类型变量与零值比较