标签:
Builder模式将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。
#Director class Director(object): def __init__(self): self.bulider = None @property def Director_building(self): self.builder.new_building() self.builder.build_floor() self.builder.build_size() @Director_building.setter def Director_building(self, BuilderSite=None): self.builder = BuilderSite def get_building(self): return self.builder.building #Abstract Builder class Builder(object): def __init__(self): self.building = None def new_building(self): self.building = Building() #Concrete Builder class BuilderHouse(Builder): def build_floor(self): self.building.floor = ‘One‘ def build_size(self): self.building.size = ‘Big‘ class BuliderFlat(Builder): def build_floor(self): self.building.floor = ‘More than One‘ def build_size(self): self.building.size = ‘Small‘ #Product class Building(object): def __init(self): self.floor = None self.size = None def __repr__(self): return ‘Floor: %s | Size: %s‘ % (self.floor, self.size) #Client if __name__ == "__main__": director = Director() director.Director_building=BuilderHouse() director.Director_building building = director.get_building() print(building) director.Director_building=BuliderFlat() director.Director_building building = director.get_building()
标签:
原文地址:http://my.oschina.net/u/1450570/blog/411223