设计模式之适配器模式(类模式)

类模式

#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"; 
}

 

posted @ 2019-10-29 09:37  N_zero  阅读(116)  评论(0)    收藏  举报