帝江VII的博客

阳光明媚

设计模式_外观模式

外观模式

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

#ifndef _FACADE_H_
#define _FACADE_H_
#include<iostream>

//子系统1
class subSystemOne
{
public:
    void subMethoredOne()
    {
        std::cout<< "subsystem one" << std::endl;
    }
};

//子系统2
class subSystemTwo
{
public:
    void subMethoredTwo()
    {
        std::cout<< "subsystem two" << std::endl;
    }          
};

//子系统3
class subSystemThree
{
public:
    void subMethoredThree()
    {
        std::cout<< "subsystem three" << std::endl;
    }
};

//外观,对外提供简单的接口
class facade
{
public:
    facade()
    {
        sub1 = new subSystemOne();
        sub2 = new subSystemTwo();
        sub3 = new subSystemThree();
    }

    //组合子系统,对外提供的功能A
    void methoredA()
    {
        sub1->subMethoredOne();
        sub2->subMethoredTwo();
    }

    //组合子系统,对外提供的功能B
    void methoredB()
    {
        sub1->subMethoredOne();
        sub3->subMethoredThree();
    }

private:
    subSystemOne * sub1;
    subSystemTwo * sub2;
    subSystemThree * sub3;
};

#endif

int main()
{
    facade * face = new facade();
    face->methoredA();
    face->methoredB();
    return 0;
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31175231/article/details/70231572
个人分类: c++设计模式
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭