适配器模式(Adapter Pattern)是一种结构型设计模式,它允许接口不兼容的类能够一起工作。适配器模式通过将一个类的接口转换成客户希望的另外一个接口,解决了接口不兼容的问题。
适配器模式三种实现方式
1. 抽象接口方式(类适配器)
这种方式通过继承被适配类并实现目标接口来实现适配。
C++实现示例:
#include <iostream>
#include <string>
// 目标接口
class MediaPlayer {
public:
virtual ~MediaPlayer() = default;
virtual void play(const std::string& audioType, const std::string& fileName) = 0;
};
// 被适配的接口
class AdvancedMediaPlayer {
public:
virtual ~AdvancedMediaPlayer() = default;
virtual void playVlc(const std::string& fileName) = 0;
virtual void playMp4(const std::string& fileName) = 0;
};
// 被适配的具体类
class VlcPlayer : public AdvancedMediaPlayer {
public:
void playVlc(const std::string& fileName) override {
std::cout << "Playing vlc file: " << fileName << std::endl;
}
void playMp4(const std::string& /*fileName*/) override {}
};
class Mp4Player : public AdvancedMediaPlayer {
public:
void playVlc(const std::string& /*fileName*/) override {}
void playMp4(const std::string& fileName) override {
std::cout << "Playing mp4 file: " << fileName << std::endl;
}
};
// 适配器
class MediaAdapter : public MediaPlayer {
private:
AdvancedMediaPlayer* advancedMusicPlayer;
public:
MediaAdapter(const std::string& audioType) {
if (audioType

最低0.47元/天 解锁文章
3694

被折叠的 条评论
为什么被折叠?



