创建工厂类,工厂类中有一个抽象的生产方法,创建手机厂类和服装厂类,重写工厂类中的抽象生产方法,输出手机厂生产的是手机,服装厂生产的是衣服。
时间: 2024-05-08 15:20:19 浏览: 29
好的,你的问题很好。以下是代码示例:
首先,我们创建一个工厂类,命名为“ProductFactory”。代码如下:
```python
class ProductFactory:
def produce(self):
pass
```
接下来,我们创建两个不同的工厂类,分别是“PhoneFactory”和“ClothesFactory”。这两个工厂类都需要重写工厂类中的抽象生产方法。代码如下:
```python
class PhoneFactory(ProductFactory):
def produce(self):
print("手机厂生产的是手机")
class ClothesFactory(ProductFactory):
def produce(self):
print("服装厂生产的是衣服")
```
最后,我们可以实例化这两个工厂并调用生产方法来输出不同的结果。代码如下:
```python
phone = PhoneFactory()
clothes = ClothesFactory()
phone.produce()
clothes.produce()
```
输出结果如下:
```
手机厂生产的是手机
服装厂生产的是衣服
```
相关问题
用java编程 (3)创建工厂类,工厂类中有一个抽象的生产方法,创建手机厂类和服装厂类,重写工厂类中的抽象生产方法,输出手机厂生产的是手机,服装厂生产的是衣服。
好的,以下是Java代码实现:
首先,我们需要创建一个抽象的工厂类,定义一个抽象的生产方法:
```java
public abstract class Factory {
public abstract void produce();
}
```
接下来,我们创建手机厂类和服装厂类,继承自工厂类,并重写抽象生产方法:
```java
public class PhoneFactory extends Factory {
@Override
public void produce() {
System.out.println("手机厂生产的是手机");
}
}
public class ClothesFactory extends Factory {
@Override
public void produce() {
System.out.println("服装厂生产的是衣服");
}
}
```
最后,我们可以在主方法中调用这些工厂类,实现生产手机和衣服的功能:
```java
public static void main(String[] args) {
Factory phoneFactory = new PhoneFactory();
phoneFactory.produce(); // 输出:手机厂生产的是手机
Factory clothesFactory = new ClothesFactory();
clothesFactory.produce(); // 输出:服装厂生产的是衣服
}
```
这样,我们就完成了创建工厂类、手机厂类和服装厂类,并且实现了生产手机和衣服的功能。
如何创建Meida抽象类的工厂方法
创建 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;
}
```