这段文字说明了某电器工厂可以根据客户订单生产电冰箱和电扇。建议使用简单工厂模式模拟客户发来的订单,工厂进行生产的流程。类结构如下图所示。代码
时间: 2024-03-02 17:49:45 浏览: 28
好的,下面是一个简单的实现代码示例:
```python
class ElectricalAppliance:
def run(self):
pass
class ElectricFan(ElectricalAppliance):
def run(self):
print("Electric fan is running...")
class ElectricRefrigerator(ElectricalAppliance):
def run(self):
print("Electric refrigerator is running...")
class ElectricalApplianceFactory:
def create_electrical_appliance(self, order):
if order == "fan":
return ElectricFan()
elif order == "refrigerator":
return ElectricRefrigerator()
if __name__ == '__main__':
factory = ElectricalApplianceFactory()
order1 = "fan"
order2 = "refrigerator"
electrical_appliance1 = factory.create_electrical_appliance(order1)
electrical_appliance2 = factory.create_electrical_appliance(order2)
electrical_appliance1.run()
electrical_appliance2.run()
```
在上述代码中,我们首先定义了一个ElectricalAppliance抽象类,其中包含了一个run方法,用于表示电器的运行状态。
接着,我们定义了两个具体的产品类ElectricFan和ElectricRefrigerator,它们继承自ElectricalAppliance类,并实现了run方法。
最后,我们定义了一个ElectricalApplianceFactory类,用于根据客户订单创建对应的产品对象。在create_electrical_appliance方法中,我们根据订单的不同,创建ElectricFan或ElectricRefrigerator对象,并返回给客户。
在main函数中,我们通过ElectricalApplianceFactory创建了两个产品对象,并分别调用了它们的run方法,来表示它们的运行状态。
通过这种方式,我们可以通过工厂类来创建不同的产品对象,从而将客户订单和产品对象的创建过程进行解耦,更加灵活地进行生产和管理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)