大话设计模式C++实现-第12章-外观模式

2015-01-24 05:45:20 · 作者: · 浏览: 3

一、UML图

\


二、概念

外观模式:<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPs6q19PPtc2z1tC1xNK71+m907/azOG5qdK7uPbSu9bCtcS958Pmo6y0y8Sjyr22qNLlwcvSu7j2uN+y473Tv9qjrNXiuPa907/ayrm1w9Xi0rvX08+1zbO4/LzTyN3S18q508OhozwvcD4KPHA+PHN0cm9uZz48YnI+Cjwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz7I/aGiy7XD9zwvc3Ryb25nPjwvcD4KPHA+PHN0cm9uZz5Ro7o8L3N0cm9uZz7N4rnbxKPKvdTayrLDtMqxuvLKudPDxNijvzwvcD4KPHA+PHN0cm9uZz5Bo7o8L3N0cm9uZz631s6qPHN0cm9uZz7I/bj2vde2zjwvc3Ryb25nPqO6PC9wPgo8cD6jqDGjqcrXz8ijrNTaPHN0cm9uZz7J6LzGs/XG2r3Xts48L3N0cm9uZz6jrNOmuMPSqtPQ0uLKtrXEvauyu82stcTBvbj2suO31sDroaM8L3A+CjxwPqOoMqOptdq2/qOs1No8c3Ryb25nPr+qt6K917bOPC9zdHJvbmc+o6zX08+1zbPN+c350vLOqrK7ts+1xNbYubnR3buvtvix5LXD1L3AtNS9uLTU06OstPO24Mr9tcTEo8q9yrnTw8qx0rK74bL6yfq63LbgutzQobXEwOCjrNXisb7Kx7rDysK2+aOstavKx9KyuPjN4rK/tffTw8v7w8e1xNPDu6ezzNDytPjAtMHLyrnTw8nPtcTAp8TRo6zU9rzTzeK520ZhY2FkZb/J0tTM4bmp0ru49rzytaW1xL3Tv9qjrLz1ydnL+8PH1q685LXE0sDAtaGjPC9wPgo8cD6jqDOjqbXayP2jrNTaPHN0cm9uZz7OrLukPC9zdHJvbmc+0ru49tLFwfS1xLTz0M3Ptc2zyrGjrL/JxNzV4rj2z7XNs9LRvq23x7OjxNHS1M6su6S6zcCp1bnBy6OstavS8s6qy/yw/Lqst8ezo9bY0qq1xLmmxNyjrNDCtcTQ6Mfzv6q3orHY0OvSqtLAwLXT2sv8oaO0y8qx08PN4rnbxKPKvUZhY2FkZdKyyse3x7Ojus/KyrXEoaM8L3A+CjxwPjxzdHJvbmc+PGJyPgo8L3N0cm9uZz48L3A+CjxwPjxzdHJvbmc+vt/M5bb40dSjus6q0MLPtc2zv6q3otK7uPbN4rnbRmFjYWRlwOCjrMC0zOG5qcnovMa01rLau/K437bIuLTU07XE0sXB9LT6wuu1xLHIvc/H5c76vPK1pbXEvdO/2qOsyMPQws+1zbPT60ZhY2FkZbbUz/O9u7ulo6xGYWNhZGXT69LFwfS0+sLrvbu7pcv509C4tNTTtcS5pNf3oaM8L3N0cm9uZz48L3A+CjxwPjxicj4KPC9wPgo8cD66w7SmysfP1Lb40te8+7XEo6zI58/CzbzL+cq+o7o8L3A+CjxwPjxpbWcgc3JjPQ=="https://www.cppentry.com/upload_files/article/49/1_bocpc__.png" alt="\">

四、C++实现

(1)Facade.h

#ifndef FACADE_H
#define FACADE_H

#include 
   
    
#include 
    
      //SubSystem Class,实现子
     系统的功能,处理Facade对象指派的任务。注意子类中没有Facade任何信息,即没有对Facade对象的引用。 //下面是四个子系统的类 class SubSystemOne { public: void MethodOne() { std::cout<<"子系统方法一"<
     
      MethodOne(); two->MethodTwo(); four->MethodFour(); std::cout<
      
       MethodTwo(); three->MethodThree(); std::cout<
       
        

(2)Client.cpp

#include "Facade.h"
#include 
         
          
#include 
          
            //Client void main() { Facade* facade=new Facade(); facade->MethodA(); facade->MethodB(); delete facade; system("pause"); }
          
         


(3)运行结果