首页 > 代码库 > 外观模式

外观模式

一、简介

1、外观模式为子系统中的一组接口提供一个统一的高层接口,这一接口使得子系统更加容易使用。

2、举例 :房间里有3盏灯,每一盏灯都有一个开关控制它的开和关两种状态,由于它们经常一起开关,所以就设置一个总的开关,一下子同时控制所有的灯。

二、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 Led222 {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 Led336 {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 Facade51 {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 }

 

外观模式