如何创建Meida抽象类的工厂方法
时间: 2024-06-20 19:03:17 浏览: 10
创建 Media 抽象类的工厂方法可以分为以下几个步骤:
1. 定义抽象类 Media,该类应该包含一个纯虚函数 play(),用于播放媒体。
2. 定义具体的媒体类,如 Video、Audio 等,并使它们继承 Media 抽象类。
3. 创建工厂类 MediaFactory,该类包含一个静态方法 createMedia(),根据传入的参数返回相应的具体媒体类的实例。
4. 在 createMedia() 方法中,根据传入的参数决定返回哪个具体媒体类的实例。
5. 在客户端代码中调用 MediaFactory 的 createMedia() 方法创建具体的媒体对象,并调用其 play() 方法进行播放。
下面是一个简单的示例代码:
```c++
#include <iostream>
using namespace std;
// 抽象媒体类
class Media {
public:
virtual void play() = 0;
};
// 具体媒体类
class Video : public Media {
public:
void play() {
cout << "Playing video..." << endl;
}
};
class Audio : public Media {
public:
void play() {
cout << "Playing audio..." << endl;
}
};
// 工厂类
class MediaFactory {
public:
static Media* createMedia(string type) {
if (type == "video") {
return new Video();
} else if (type == "audio") {
return new Audio();
} else {
return NULL;
}
}
};
int main() {
// 创建 Video 对象并播放
Media* video = MediaFactory::createMedia("video");
video->play();
// 创建 Audio 对象并播放
Media* audio = MediaFactory::createMedia("audio");
audio->play();
delete video;
delete audio;
return 0;
}
```