python 建造者模式
时间: 2023-10-12 19:11:57 浏览: 50
建造者模式是一种创建型设计模式,旨在通过将对象的构造与其表示分离来解决复杂对象的创建问题。该模式允许您按照步骤构建对象,同时也提供一种灵活的方式来创建不同类型的对象。
在Python中,建造者模式通常使用类和方法来实现。以下是一个基本的建造者模式示例:
```python
class Computer:
def __init__(self):
self.__monitor = None
self.__keyboard = None
self.__mouse = None
def set_monitor(self, monitor):
self.__monitor = monitor
def set_keyboard(self, keyboard):
self.__keyboard = keyboard
def set_mouse(self, mouse):
self.__mouse = mouse
class ComputerBuilder:
def __init__(self):
self.__computer = Computer()
def get_computer(self):
return self.__computer
def build_monitor(self):
monitor = "Dell Monitor"
self.__computer.set_monitor(monitor)
def build_keyboard(self):
keyboard = "Logitech Keyboard"
self.__computer.set_keyboard(keyboard)
def build_mouse(self):
mouse = "Microsoft Mouse"
self.__computer.set_mouse(mouse)
class Director:
def __init__(self, builder):
self.__builder = builder
def build_computer(self):
self.__builder.build_monitor()
self.__builder.build_keyboard()
self.__builder.build_mouse()
builder = ComputerBuilder()
director = Director(builder)
director.build_computer()
computer = builder.get_computer()
```
在上面的示例中,我们定义了一个Computer类,它包含了电脑的一些属性,如显示器、键盘和鼠标等。我们还定义了一个ComputerBuilder类,它允许我们按照步骤构建Computer对象。最后,我们定义了一个Director类,它协调ComputerBuilder的构建过程。
当我们需要创建一个新的Computer对象时,我们只需创建一个ComputerBuilder实例并将其传递给Director类。Director类将协调ComputerBuilder的构建过程,并返回一个完整的Computer对象。