设计模式之适配器模式

适配器模式是一种结构型设计模式,它允许将不兼容的接口转换为可兼容的接口。在实际应用中,适配器模式通常用于以下两种情况:

  1. 将一个旧的接口转换为一个新的接口,以便与现有的系统进行交互。
  2. 将一个类的接口转换为另一个类的接口,以便在不修改原始代码的情况下使用这个类。

假设我们有一个旧的音乐播放器类 OldMusicPlayer,它有一个 playMusic 方法,但它的接口与我们的新音乐播放器类 NewMusicPlayer 不兼容。我们需要将 OldMusicPlayer 转换为 NewMusicPlayer,以便在我们的应用程序中使用它。

#include 
#include 

class OldMusicPlayer {
public:
	void playMusic()
	{
		std::cout << "OldMusicPlayer's playMusic interface" << std::endl;
	}
	void stopMusic()
	{
		std::cout << "OldMusicPlayer's stopMusic interface" << std::endl;
	}
};

/*

*/
//创建一个新的音乐播放器接口 MusicPlayer
class MusicPlayer {
public:
	virtual void play() = 0;
	virtual void pause() = 0;
	virtual void stop() = 0;
};

class OldMusicPlayerAdapter : public MusicPlayer {
private:
	OldMusicPlayer* oldPlayer;

public:
	OldMusicPlayerAdapter(OldMusicPlayer* player) {
		oldPlayer = player;
	}

	void play() override {
		oldPlayer->playMusic();
	}

	void pause() override {
		// OldMusicPlayer 没有暂停方法,所以我们不实现这个方法
	}

	void stop() override {
		oldPlayer->stopMusic();
	}
};


int main() {
	OldMusicPlayer* oldPlayer = new OldMusicPlayer();
	MusicPlayer* newPlayer = new OldMusicPlayerAdapter(oldPlayer);

	// 使用 newPlayer 播放音乐
	newPlayer->play();

	delete oldPlayer;
	delete newPlayer;

	return 0;
}


你可能感兴趣的:(设计模式,c++,java,开发语言)