设计模式之外观模式
个人初步理解:收缩接口模式。
类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; }

浙公网安备 33010602011771号