码迷,mamicode.com
首页 > 其他好文 > 详细

外观模式

时间:2014-06-05 10:51:46      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:c++ 设计模式

 外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
bubuko.com,布布扣
Facade外观类,知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。
SubSystem类,子系统类集合,实现子系统的功能,处理Facade对象指派的任务。注意子类中没有Facade的任何信息,既没有对Facade对象的引用。

外观模式体现了依赖倒转原则和迪米特法则。

代码:
//Facade.h
#include "stdafx.h"
#include <iostream>
using namespace std;

class SubSystemOne
{
public :
        void MethodOne()
       {
              cout << "MethodOne!" << endl;
       }
};

class SubSystemTwo
{
public :
        void MethodTwo()
       {
              cout << "MethodTwo!" << endl;
       }
};

class SubSystemThree
{
public :
        void MethodThree()
       {
              cout << "MethodThree!" << endl;
       }
};

class Facade
{
private :
        SubSystemOne * m_pSubSystemOne;
        SubSystemTwo * m_pSubSystemTwo;
        SubSystemThree * m_pSubSystemThree;
public :
       Facade()
       {
              m_pSubSystemOne = new SubSystemOne ();
              m_pSubSystemTwo = new SubSystemTwo ();
              m_pSubSystemThree = new SubSystemThree ();
       }
        void MethodA()
       {
              cout << "方法组A" << endl;
              m_pSubSystemOne->MethodOne();
              m_pSubSystemTwo->MethodTwo();
              m_pSubSystemThree->MethodThree();
       }
        void MethodB()
       {
              cout << "方法组B" << endl;
              m_pSubSystemTwo->MethodTwo();
              m_pSubSystemThree->MethodThree();
       }
};

// FacadePattern.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "Facade.h"

int _tmain (int argc , _TCHAR * argv [])
{
        Facade facade;
       facade.MethodA();
       facade.MethodB();
       getchar();
        return 0;
}



外观模式,布布扣,bubuko.com

外观模式

标签:c++ 设计模式

原文地址:http://blog.csdn.net/wwwdongzi/article/details/27343739

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!