设计模式——适配器模式

适配器模式是一种结构型设计模式,它允许接口不兼容的类之间进行合作。它通过引入一个适配器来充当两个不兼容接口之间的中间层,使得它们可以一起工作。

设计原理:

目标接口(Target): 定义客户端使用的接口。
适配器(Adapter): 实现目标接口,并持有一个被适配的对象,负责将客户端请求转发给被适配对象。
被适配对象(Adaptee): 包含了需要被适配的功能,但其接口与目标接口不兼容。
适配器模式将被适配对象与客户端解耦,使得它们可以独立进行变化。

特点:

解耦性: 适配器模式使得客户端与被适配对象解耦,客户端只需要与目标接口交互,而不需要直接与被适配对象交互。
复用性: 可以重用现有的类,而不需要修改其原有的代码。
灵活性: 可以动态地替换适配器,以适应不同的适配需求。
透明性: 客户端无需知道适配器的存在,它只需要与目标接口交互即可。

在这个例子中,Target 是目标接口,Adaptee 是被适配对象,它包含了一个特定的请求 specificRequest。Adapter 是适配器,它继承自 Target 并私有继承了 Adaptee,在其实现中调用了 Adaptee 的特定请求。客户端通过适配器访问被适配对象的功能,而不需要直接与被适配对象交互。

#include <iostream>

// 目标接口
class Target {
public:
    virtual ~Target() {}
    virtual void request() const = 0;
};

// 被适配对象
class Adaptee {
public:
    void specificRequest() const {
        std::cout << "Adaptee specificRequest" << std::endl;
    }
};

// 类适配器,继承自Target并持有Adaptee对象
class Adapter : public Target, private Adaptee {
public:
    void request() const override {
        specificRequest(); // 调用被适配对象的特定请求
    }
};

int main() {
    // 使用适配器模式将被适配对象转换为目标接口
    Target* adapter = new Adapter();
    adapter->request(); // 通过适配器调用被适配对象的特定请求
    delete adapter;

    return 0;
}
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值