外观模式
时间:2022-04-26
本文章向大家介绍外观模式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、简介
1、外观模式为子系统中的一组接口提供一个统一的高层接口,这一接口使得子系统更加容易使用。
2、举例 :房间里有3盏灯,每一盏灯都有一个开关控制它的开和关两种状态,由于它们经常一起开关,所以就设置一个总的开关,一下子同时控制所有的灯。
3、UML图
4、所属类别:结构型
二、C++程序
1 // 外观模式.cpp : 定义控制台应用程序的入口点。
2 //
3
4 #include "stdafx.h"
5 #include<iostream>
6 using namespace std;
7 class Led1
8 {
9 public:
10 Led1(){}
11 ~Led1(){}
12 void led_on()
13 {
14 cout<<"打开led1"<<endl;
15 }
16 void led_off()
17 {
18 cout<<"关闭led1"<<endl;
19 }
20 };
21 class Led2
22 {
23 public:
24 Led2(){}
25 ~Led2(){}
26 void led_on()
27 {
28 cout<<"打开led2"<<endl;
29 }
30 void led_off()
31 {
32 cout<<"关闭led2"<<endl;
33 }
34 };
35 class Led3
36 {
37 public:
38 Led3(){}
39 ~Led3(){}
40 void led_on()
41 {
42 cout<<"打开led3"<<endl;
43 }
44 void led_off()
45 {
46 cout<<"关闭led3"<<endl;
47 }
48 };
49
50 class Facade
51 {
52 private:
53 Led1 *led1;
54 Led2 *led2;
55 Led3 *led3;
56 public:
57 Facade()
58 {
59 led1=new Led1();
60 led2=new Led2();
61 led3=new Led3();
62 }
63 ~Facade(){}
64 void led_on()
65 {
66 led1->led_on();
67 led2->led_on();
68 led3->led_on();
69 }
70 void led_off()
71 {
72 led1->led_off();
73 led2->led_off();
74 led3->led_off();
75 }
76 };
77 int _tmain(int argc, _TCHAR* argv[])
78 {
79 Facade *led=new Facade();
80 led->led_on();
81 led->led_off();
82 return 0;
83 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [058]SQLite on Android
- 【Rust日报】2020-07-15 用Rust重写FORTRAN科学软件
- 一文读懂 DEX 文件格式解析
- Guava集合--新集合类型
- 从 Node.js 到 Go
- 性能不达标,计将安出?
- Yaml 速成查询表
- 设计模式实战-策略模式,想让你的代码变幻莫测吗?
- 设计模式实战-模板模式,代码复用神器
- CSS Flexbox 布局完全指南 (二):3000字,多示例讲解
- 设计模式实战-访问者模式,减少代码体积
- Spring Security 实战干货:UsernamePasswordAuthenticationFilter 源码分析
- 打卡群刷题总结0715——旋转链表
- 设计模式实战-中介模式,为你牵桥搭线
- 设计模式实战-迭代器模式,最常用的设计模式之一