/*
通常某一个操作的初始化依赖于很多步骤,我们可以把此步骤进行封装做成一个类
通过这个类的初始化操作中(对依赖的对象进行创建,然后返回创建此类型的指针)
然后在外观类中完成这些函数的调用工作
适用于:
为子系统中统一一套接口,让子系统更加容易使用。
*/
#include <iostream>
using namespace std;
class SystemA
{
public:
void doThing()
{ cout << "systemA do...." << endl;}
};
class SystemB
{
public:
void doThing()
{ cout << "systemA do...." << endl; }
};
class SystemC
{
public:
void doThing()
{ cout << "systemA do...." << endl;}
};
class Facade  //
{
public:
Facade()
{
a = new SystemA;
b = new SystemB;
c = new SystemC;
}
~Facade()
{
delete a;
delete b;
delete c;
}
void doThing()
{
a->doThing();
b->doThing();
c->doThing();
}
protected:
private:
SystemA *a;
SystemB *b;
SystemC *c;
};
void main()
{
Facade *f = new Facade;//创建一个外观对象
f->doThing();//然后调用外观函数中封装的一些列的接口实现函数
delete f;
system("pause");

}

思路来源:传智博客--王保明

设计模式---外观模式(C++实现)相关推荐

  1. Python设计模式-外观模式

    Python设计模式-外观模式 代码基于3.5.2,代码如下; #coding:utf-8 # 外观模式class AlarmSensor:def run(self):print("Alar ...

  2. 设计模式--------外观模式

    设计模式--------外观模式 介绍外观模式的四大问题 现在的写法有什么问题吗? 为什么要用外观模式? 什么是外观模式? 外观模式有什么好处? 使用一个例子进行问题的说明 假如要制作一个智能系统,要 ...

  3. [设计模式]外观模式

    1. 定义 外观模式 提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口,让子系统更加容易使用. 外观不仅简化了系统内接口的使用,也将客户从组件中的子系统中解耦,外观和适配器都可 ...

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

    外观模式(Facade) 外观模式的意图是:为子系统提供一个接口,便于它的使用. 解释: 简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的接口,是设计模式中一种 ...

  5. Java 设计模式——外观模式

    概述 今天要说的外观模式是一个相对简单的设计模式,而且在日常的开发中,可能你也会时常使用它,只是你可能并未想过这是一个设计模式.本文会从一些实例着手,来对本文要说明的外观模式进行尽可能全面的讲解.希望 ...

  6. Java设计模式-外观模式

    我又来了,继Java设计模式之桥接模式后,现在来到了外观模式啦,外观模式又称为门面模式啦

  7. 大话设计模式—外观模式

    外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性. 这种模式涉及 ...

  8. 设计模式 外观模式 一键电影模式

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/25837275 这个模式比较简单,嘿嘿,简单写一下. 老样子,先看 外观模式(Fa ...

  9. 8. 设计模式 外观模式 一键电影模式

    这个模式比较简单,嘿嘿,简单写一下. 老样子,先看 外观模式(Facade Pattern)定义:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用.其实就是 ...

  10. 大话设计模式——外观模式

    股民炒股代码 /*** 股票1*/ public class Stock1 {// 卖股票public void sell() {System.out.println("股票1卖出" ...

最新文章

  1. 高性能千万级定时任务管理服务forsun使用详解
  2. Python中的[:n],[::n],[:,:,n],[...,n]介绍
  3. 与Google用户帐户集成
  4. 强烈推荐十大NLP主流经典项目:预训练BERT、知识图谱、智能问答、机器翻译、文本自动生成等...
  5. apache.camel_Apache Camel 2.23发布
  6. mysql-5.7.13-winx64如何安装_mysql 5.7.13 winx64安装配置方法图文教程
  7. 新手学堂:Linux操作系统的启动步骤说明
  8. ios并发会造成什么问题_女生月经不调会引起什么并发症?
  9. 安卓扁平化之路专题(二)ActionBar的Overlay模式
  10. python万能头文件_c++的‘万能头文件’真的万能吗?
  11. 多功能jQuery日期控件基于jeDate
  12. C#Winform使用火狐firefox内核GeckoWebBrowser
  13. Kotlin | Kotlin教程
  14. Ubuntu下libmodbus的应用
  15. 迅雷beat下载为php,2019苹果迅雷beat版链接下载地址-迅雷ios内测版ios13企业信任版app下载官方最新beta手机版-迅雷ios永久稳定版西西软件下载...
  16. 商业智能的研究,主要集中在哪三个方面?
  17. 【黑金原创教程】【TimeQuest】【第五章】网表质量与外部模型
  18. 2020年小米校招JAVA岗笔试第二题
  19. 2018中国十大品牌在线英语培训机构排行榜暴风来袭
  20. 判断两个日期间隔是否为7日内

热门文章

  1. Microsoft.Office.Interop.Excel 报错
  2. ASP.NET配置设置-关于web.config各节点的讲解
  3. 我的android学习脚步----------- 的第一个应用
  4. 华为hs8145v5如何改桥接_Linksys VelopAX5300和AC3900套装 Mesh组网实战 - 桥接
  5. MySQL数据库检查修复详解
  6. MySQL外键约束详解
  7. SNMP原理及常用配置命令
  8. 华为PIM-SSM配置实例
  9. Ubuntu18.04安装wireshark3.0.6(版本可自己选)
  10. 利用html5实现上传图片预览