外观模式

时间: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 }