通常用来表示类与类之间的协作关系,用以创造出一个有更强大功能的组件.

在一些情况下,当进行软件开发协作时,或者我们在使用第三方库的内部类时,我们可能会察觉到相似的类,出现了不同的功能的情况,这时候,希望能够有一种统一的接口规范来规约这些类.在这种情况下,可以在一个类上方接入一个适配器,和不协调的类进行交互.
一般来说,适配器会在内部获取到一个类的实例.
cpp#pragma once
#include <iostream>
#include <vector>
namespace Adapter {
class TargetA {
public:
void func();
};
class TargetB {
public:
void F();
};
class TargetAdatper {
public:
virtual void doSomething() const = 0;
};
class TargetAAdapter : public TargetAdatper {
public:
TargetAAdapter(TargetA* a) : a_(a) {}
void doSomething() const override {
a_->func();
}
private:
TargetA* a_;
};
class TargetBAdapter : public TargetAdatper {
public:
TargetBAdapter(TargetB* b) : b_(b) {}
void doSomething() const override {
b_->F();
}
private:
TargetB* b_;
}
}
UML设计如下

用于表示两个类之间的关系,一个类可能是另一个类的一个部分(聚合),那么我们可以通过桥接的方式,在一个类中添加对另一个类的引用或者拷贝.
本文作者:barrenham
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!