17.适配器模式(Adapter)

意图:将一个类的接口转换为Client希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类在一起工作。

UML图

在这里插入图片描述

Target:定义Client使用的与特定领域相关的接口。
Client:与符合Target接口的对象协同工作。
Adaptee:定义一个已经存在的接口,这个接口需要适配。
Adapter:对Adaptee的接口与Target接口进行适配。

在这里插入图片描述文章来源地址https://uudwc.com/A/Bv32W

代码:

#include <iostream>
#include <list>
using namespace std;
 
 
class Target{
public:
    virtual void Request(){
        cout << "Target:普通请求" << endl;
    }
};
class Adaptee{
public:
    void SpecificRequest(){
        cout << "Adaptee:特殊请求" << endl;
    }
    ~Adaptee(){
        cout << "delete Adaptee" << endl;
    }
};
 
class Adapter:public Target
{
public:
    Adaptee *adaptee;
    Adapter(){
        adaptee = new Adaptee();
    }
    void Request(){
        adaptee->SpecificRequest();
    }
    ~Adapter(){
        cout << "delete Adapter" << endl;
        delete adaptee;
    }
};
 
int main(void){
    Target *t1 = new Target();
    t1->Request();
 
    Target *t2 = new Adapter();
    t2->Request();
    return 0;
}

结果

Target:普通请求
Adaptee:特殊请求

原文地址:https://blog.csdn.net/qq_40178082/article/details/133067228

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年09月24日 07:29
有趣的设计模式——适配器模式让两脚插头也能使用三孔插板
下一篇 2023年09月24日 07:29