构造者
一个复杂系统中的对象,往往都十分复杂。这种复杂对象在进行创建时,总是十分麻烦的。尤其是使用构造函数进行初始化,需要传递很长的参数,这常常会使人忘记每一个参数的用途和目的。将一个复杂对象的构建和表示分离,是构造者模式最主要的目标。
以下提供一个构造者模式的示例。
class Cake:
__name = ""
__taste = "sweet"
def __init__(self):
pass
@property
def taste(self):
return self.__taste
@taste.setter
def taste(self, value):
self.__taste = value
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
self.__name = value
def __str__(self):
return "{0} taste {1}".format(self.__name, self.__taste)
class CakeBuilder:
def __init__(self):
self.__cake = Cake()
def name(self, value):
self.__cake.name = value
return self
def taste(self, value):
self.__cake.taste = value
return self
def build(self):
return self.__cake
waffle = CakeBuilder().name("Waffle").taste("sweet").build()
print(waffle)