GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-patterns/builder.py at master · glennie/python-patterns Expand file tree/ Copy pathbuilder.pyMore file actions 70 lines (51 loc) · 1.48 KB / Copy pathbuilder.pyFile metadata and controls70 lines (51 loc) · 1.48 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 #!/usr/bin/python # -*- coding : utf-8 -*- """ @author: Diogenes Augusto Fernandes Herminio <[email protected]> https://gist.github.com/420905#file_builder_python.py """ # Director class Director(object): def __init__(self): self.builder = None def construct_building(self): self.builder.new_building() self.builder.build_floor() self.builder.build_size() 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 BuilderFlat(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.builder = BuilderHouse() director.construct_building() building = director.get_building() print(building) director.builder = BuilderFlat() director.construct_building() building = director.get_building() print(building) |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |