设计模式之适配器模式(类模式)
类模式
#pragma once class Target { public: Target(); virtual ~Target(); virtual void Request(); };
#include "Target.h" #include <iostream> Target::Target() { } Target::~Target() { }
#pragma once class Adaptee { public: Adaptee(); ~Adaptee(); void SpecificRequest(); };
#include "Adaptee.h" #include <iostream> Adaptee::Adaptee() { } Adaptee::~Adaptee() { } void Adaptee::SpecificRequest() { std::cout << "Adaptee::SpecificRequest" << std::endl; }
#pragma once #include "Target.h" #include "Adaptee.h" class Adapter : public Target, private Adaptee { public: Adapter(); ~Adapter(); void Request(); };
#include "Adapter.h" Adapter::Adapter() { } Adapter::~Adapter() { } void Adapter::Request() { this->SpecificRequest(); }
测试
#include <iostream> #include "Adapter.h" int main() { Target *tar = new Adapter(); tar->Request();
// 内存释放
if (tar) { delete tar; tar = NULL; }
std::cout << "Hello World!\n"; }

浙公网安备 33010602011771号