1. Builder Mode UML diagram
2. Application Scenarios
(1) Create an object with a conforming attribute
3. Code implementation
#!/usr/bin/env python#! _*_ coding:utf-8 _*_ fromAbcImportAbcmeta, AbstractmethodclassHouse (object):def __init__(self):Pass defMakefloor (self, floor): Self.floor= FloordefMakewall (self, Wall): Self.wall=WalldefGetfloor (self):returnSelf.floordefGetwall (self):returnSelf.wallclassBuilder (object):__metaclass__=Abcmeta @abstractmethoddefMakefloor (self):Pass@abstractmethoddefMakewall (self):Pass@abstractmethoddefGethouse (self):Pass@abstractmethoddefGethouse (self):PassclassPingfangbuilder (Builder):def __init__(self): Self.house=House ()defMakefloor (self): Self.house.makeFloor ("Bungalow Flooring") defMakewall (self): Self.house.makeWall ("Cottage Wall") defGethouse (self):returnSelf.houseclassDirector (object):def __init__(self, builder): self.__builder=BuilderdefMakehouse (self): self.__builder. Makefloor () self.__builder. Makewall ()if __name__=="__main__": " "use the most primitive way" " House=House () House.makefloor ("Flooring") House.makewall ("Wall") PrintHouse.getfloor ()PrintHouse.getwall ()" "using builder Mode" "Builder=Pingfangbuilder () director=Director (builder) director.makehouse () House=Builder.gethouse ()PrintHouse.getfloor ()PrintHouse.getwall ()
Results:
/users/liudaoqiang/pycharmprojects/numpy/venv/bin/python/users/liudaoqiang/project/python_project/day7_builder /builder_test.py floor wall Bungalow floor Cottage wall process finished with exit code 0
Python design mode Seventh Day "builder mode"