设计模式之外观模式

个人初步理解:收缩接口模式。

类1

#pragma once
class Subsystem1
{
public:
    Subsystem1();
    ~Subsystem1();

    void Operation();
};
#include "Subsystem1.h"
#include <iostream>


Subsystem1::Subsystem1()
{
}


Subsystem1::~Subsystem1()
{
}

void Subsystem1::Operation()
{
    std::cout << "Subsystem1 operation..." << std::endl;
}

 

类2

#pragma once
class Subsystem2
{
public:
    Subsystem2();
    ~Subsystem2();

    void Operation();
};
#include "Subsystem2.h"
#include <iostream>


Subsystem2::Subsystem2()
{
}


Subsystem2::~Subsystem2()
{
}

void Subsystem2::Operation()
{
    std::cout << "Subsystem2 operation..." << std::endl;
}

 

外观类

#pragma once
#include "Subsystem1.h"
#include "Subsystem2.h"

class Facade
{
public:
    Facade();
    ~Facade();

    void OperationWrapper();

private:
    Subsystem1 *m_sub1;
    Subsystem2 *m_sub2;
};
#include <iostream>
#include "Facade.h"

Facade::Facade()
{
    this->m_sub1 = new Subsystem1();

    this->m_sub2 = new Subsystem2();
}


Facade::~Facade()
{
    delete m_sub1;
    m_sub1 = NULL;

    delete m_sub2;
    m_sub2 = NULL;
}

void Facade::OperationWrapper()
{
    this->m_sub1->Operation();

    this->m_sub2->Operation();

    return;
}

 

测试

#include <iostream>
#include "Facade.h"

int main()
{
    Facade *f = new Facade();

    f->OperationWrapper();

    if (f)
    {
        delete f;
        f = NULL;
    }

    std::cout << "Hello world!." << std::endl;
    return 0;
}

 

posted @ 2019-10-30 17:54  N_zero  阅读(131)  评论(0)    收藏  举报