外观模式

外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。
C++代码:
#include<iostream>
using namespace std;class Shape {
public:virtual void draw()=0;
};class Rectangle : public Shape {
public:void draw() {cout<<"Rectangle::draw()"<<endl;}
};class Square  : public Shape {
public:void draw() {cout<<"Square ::draw()"<<endl;}
};class Circle   : public Shape {
public:void draw() {cout<<"Circle ::draw()"<<endl;}
};class ShapeMaker {Shape *circle;Shape *rectangle;Shape *square;public:ShapeMaker() {circle = new Circle();rectangle = new Rectangle();square = new Square();}void drawCircle(){circle->draw();}void drawRectangle(){rectangle->draw();}void drawSquare(){square->draw();}
};class FacadePatternDemo {
public: static void method(int argc,char**argv) {ShapeMaker *shapeMaker = new ShapeMaker();shapeMaker->drawCircle();shapeMaker->drawRectangle();shapeMaker->drawSquare();      }
};int main(int argc,char**argv){FacadePatternDemo::method(argc,argv);return 0;
}

类图:

外观模式感觉最简单了,相当于把几个独立的接口写了一个统一的包装类进行了合并,并向外提供统一的调用接口,代码一看便知!

转载于:https://www.cnblogs.com/J1ac/p/9738379.html

设计模式之- 外观模式(Facade 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. 使用C#实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)

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

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

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

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

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

  6. 设计模式(八): 从“小弟”中来类比外观模式(Facade Pattern)

    在此先容我拿"小弟"这个词来扯一下淡.什么是小弟呢,所谓小弟就是可以帮你做一些琐碎的事情,在此我们就拿"小弟"来类比"外观模式".在上面一篇 ...

  7. 设计模式之外观模式(Facade)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  8. 【设计模式】—— 外观模式Facade

    前言:[模式总览]----------by xingoo 模式意图 外观模式主要是为了为一组接口提供一个一致的界面.从而使得复杂的子系统与用户端分离解耦. 有点类似家庭常用的一键开关,只要按一个键,台 ...

  9. 设计模式之外观模式(Fasade Pattern)

    2019独角兽企业重金招聘Python工程师标准>>> 模式分析: 外观模式又称为门面模式,提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使 ...

最新文章

  1. 干掉前端!3分钟纯 Java 注解搭个管理系统,我直接好家伙
  2. 小程序网络最大并发限制解决思路
  3. EDAS ScheduleX 问题
  4. 雷林鹏分享:Lua 数据库访问
  5. 一道关于 ARRAY 深度展开的面试题
  6. python3 正则表达式模块re相关
  7. 插件原理[转自CSDN]
  8. 《http权威指南》读书笔记14
  9. 3月3 pytorch模型保存的.pt, .pth, .pkl的pytorch模型文件,只是后缀不同而已(仅此而已)
  10. 服务器cpu最多几核心,决定虚拟服务器所需要的CPU核心数量是一件非常复杂的事情...
  11. WS2811芯片 SM16703 SOP8 RGB流水幻彩灯LED驱动IC
  12. Windows把内存设置为0无法开机怎么办
  13. Unity3d 人物跳跃后落地悬空问题
  14. Apollo Planning决策规划算法代码解析 (17):SPEED_HEURISTIC_OPTIMIZER 速度动态规划下
  15. PAT乙级做题部分总结
  16. Android WebView播放视频flash(判断是否安装flash插件)
  17. torch.isfinite()、torch.isinf()、torch.isnan()
  18. Bootstrap4模态框垂直居中
  19. 两张(多张)图片合成一张图片
  20. 艺赛旗(RPA)新手课堂 - 原始字符串为什么不能以反斜杠结尾

热门文章

  1. Linux Distribution Timeline for 2010(Linux 2010 年发行版时间线/族谱/发展图)
  2. 阐述计算机网络的作用答案,计算机网络习题及答案(50页)-原创力文档
  3. python 40位的数减个位数_Python——进制表示与转换
  4. emacs python ide_Emacs Python IDE win7 x64
  5. linux shell ls -l,linux之ls -l|grep ^-|wc -l命令 Shell 中常見的日志統計方法
  6. python中if语句的实例_对python中if语句的真假判断实例详解
  7. C语言代码注释必须用/**/ , 你没看错~
  8. C语言和指针的本质是什么?技术大神给出答案
  9. C语言 | 变量的存储方式
  10. linux uboot 源码分析,UBoot源码分析1.pdf