一、简介
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 }