有一个电脑的代工生产商有多家工厂Factory对应生产各种品牌的电脑Computer,它目前已经可以代工生产神州Shenzhou电脑、华为Huawei电脑,随着业务的拓展,这个代工生产商还要生产小米Xiaomi和华硕Asus的电脑。请运用面向对象思想,给出一个最优的设计方案并给出相应代码。(提示:工厂方法模式)
时间: 2024-02-21 11:57:48 浏览: 22
一个最优的设计方案是使用工厂方法模式,将每个品牌的电脑生产过程封装在一个具体的工厂类中,每个工厂类继承一个抽象工厂类。
下面是相应的代码实现:
```python
# 抽象工厂类
class ComputerFactory:
def produce_computer(self):
pass
# 具体神州工厂类
class ShenzhouFactory(ComputerFactory):
def produce_computer(self):
return ShenzhouComputer()
# 具体华为工厂类
class HuaweiFactory(ComputerFactory):
def produce_computer(self):
return HuaweiComputer()
# 具体小米工厂类
class XiaomiFactory(ComputerFactory):
def produce_computer(self):
return XiaomiComputer()
# 具体华硕工厂类
class AsusFactory(ComputerFactory):
def produce_computer(self):
return AsusComputer()
# 电脑类
class Computer:
def __init__(self, brand):
self.brand = brand
# 具体神州电脑类
class ShenzhouComputer(Computer):
def __init__(self):
super().__init__('神州')
# 具体华为电脑类
class HuaweiComputer(Computer):
def __init__(self):
super().__init__('华为')
# 具体小米电脑类
class XiaomiComputer(Computer):
def __init__(self):
super().__init__('小米')
# 具体华硕电脑类
class AsusComputer(Computer):
def __init__(self):
super().__init__('华硕')
```
使用时,可以根据需要选择不同的工厂类来生产不同品牌的电脑:
```python
shenzhou_factory = ShenzhouFactory()
shenzhou_computer = shenzhou_factory.produce_computer()
huawei_factory = HuaweiFactory()
huawei_computer = huawei_factory.produce_computer()
xiaomi_factory = XiaomiFactory()
xiaomi_computer = xiaomi_factory.produce_computer()
asus_factory = AsusFactory()
asus_computer = asus_factory.produce_computer()
```
相关推荐
![](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)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)