首页 > 其他分享 >外观(门面)模式--Facade

外观(门面)模式--Facade

时间:2023-06-06 16:23:03浏览次数:39  
标签:cout -- pPLight pSensor turnOn pAlaram Facade 门面 deactive

一、代码示例

#include <iostream>
using namespace std;

class Carmera {
public:
    void turnOn() {
        cout << "相机启动" << endl;
    }
    void turnOff() {
        cout << "相机关闭" << endl;
    }
};

class Light {
public:
    void turnOn() {
        cout << "照明灯开启" << endl;
    }
    void turnOff() {
        cout << "照明灯关闭" << endl;
    }
};
class Sensor {
public:
    void active() {
        cout << "传感器启动" << endl;
    }
    void deactive() {
        cout << "传感器关闭" << endl;
    }
};

class Alarm {
public:
    void active() {
        cout << "报警器启动" << endl;
    }
    void deactive() {
        cout << " 报警器关闭" << endl;
    }
};

class SecuritFacade {
public:
    SecuritFacade() {
        Carmera* m_pCarmera = new Carmera;
        Light* m_pPLight = new Light;
        Sensor* m_pSensor = new Sensor;
        Alarm* m_pAlaram = new Alarm;
    }
    void active() {
        m_pCarmera->turnOn();
        m_pPLight->turnOn();
        m_pSensor->active();
        m_pAlaram->active();
    }
    void deactive() {
        m_pCarmera->turnOff();
        m_pPLight->turnOff();
        m_pSensor->deactive();
        m_pAlaram->deactive();
    }
private:
    Carmera* m_pCarmera;
    Light* m_pPLight ;
    Sensor* m_pSensor ;
    Alarm* m_pAlaram ;
};
//LOD
int main() {
    SecuritFacade facade;
    

    cout << "-----------启动系统" << endl;
    facade.active();
    //
    cout << "----------关闭系统" << endl;
    facade.deactive();
    system("pause");
    return 0;
}
View Code

 

标签:cout,--,pPLight,pSensor,turnOn,pAlaram,Facade,门面,deactive
From: https://www.cnblogs.com/zeliangzhang/p/17460874.html

相关文章

  • 回溯算法体型归纳
    回溯算法回溯模板voidbacktracking(参数){if(终止条件){存放结果;return;}for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)){处理节点;backtracking(路径,选择列表);//递归回溯,撤销处理结果 }}例1:77.组合参......
  • AQS源码详解
    AQS源码详解可重入锁:同一个线程可重复获取同一把锁对象locksupport:用来创建锁和其他同步类的基本线程阻塞原语park()和unpark()为什么会引出locksupport?像传统的synchorized和lock,他们的wait()和notify()方法,await()和singal()方法使用不方便,必须在同步代码块或者锁内使用,并......
  • IO流:转换流-字符输出转换流
      ......
  • mysql的ROUND、TRUNCATE函数
    在MySQL中,可以使用ROUND函数对数字进行四舍五入并保留指定位数的小数,语法如下:ROUND(number,decimals)其中,number参数表示要进行四舍五入的数字,decimals参数表示要保留的小数位数。例如,要对数字3.1415926进行四舍五入并保留两位小数,可以使用以下SQL语句:SELECTROUND(3.141592......
  • Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效。
    前言:自首个带微服务版本的框架发布:Taurus.MVCV3.0.3微服务开源框架发布:让.NET架构在大并发的演进过程更简单已经过去快1年了,在这近一年的时间里,版本经历了N个版本的迭代。如今,是时候写文章介绍一下了:以下介绍中,仅以.NetCore6为示例代码。框架支持在.NetFramework2.0+......
  • 半导体专业名词
    实时生产线机台状态展示通常包括以下指标和图表:ToolWIPandtrendchart(工具在制品和趋势图):显示每个机台上正在处理的晶圆数量(在制品)以及随时间变化的趋势图。这可以帮助跟踪每个机台的负载情况和产能利用率。Uptime(正常运行时间):显示每个机台的正常运行时间,即机台处于可生产状态......
  • webpack笔记
    webpack笔记webpack是一个现代JavaScript应用程序的静态模块打包器(modulebundler)。当webpack处理应用程序时,它会递归地构建一个依赖关系图(dependencygraph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。webpack自身只理解JavaScript......
  • 前端八股文everybody准备好了没
    引言由于最近比较忙活没时间学习新东西,现在得空想着能不能好好整理出一些有用的东西,让记忆深刻一点,免得到时候实习找工作面试的时候一问三不知,也希望大家能指正出错误和对大家有点帮助,一起进步,加油奥里给!!!那么废话不多说直接进入正题,如果觉得可以家人们给个三连......
  • Jenkins自动部署与回滚
    Deploy发布的思路:用户无需填写Version 直接选择对应的项目和Deploy发布即可,会自动生成一个项目名+构建时间的备份文件多人使用Jenkins构建的时候会不知道Version要填什么 而且本人不喜欢使用Version这个变量Rollback回退的思路:选择Rollback 选择对应的回退版本......
  • javasecript 生成 从2022年到当前季度的所以季度,排倒序
    javasecript 生成从2022年到当前季度的所以季度,排倒序 functiongetQuarter(year,quarter){returnyear+"年"+quarter+"季度";}functiongenerateQuarters(){varcurrentYear=newDate().getFullYear();varcurrentQuarter=Math.floor((......