建造者模式:
應用特性:同類化創造相同模組,避免遺漏固有屬性
結構特性:把創造的流程正常化,每個流程的具體任務可以自訂化,建造過程批量化。
#!/usr/bin/env python #encoding: utf-8class product: def __init__(self): self.parts = [] def add(self, strings): self.parts.append(strings) def show(self): print 'Product Create:' for part in self.parts: print partclass base: def __init__(self): pass def buildA(self): pass def buildB(self): pass def getRault(self): pass class child1(base): def __init__(self): self.pdt = product() def buildA(self): self.pdt.add('child A') def buildB(self): self.pdt.add('child B') def getRault(self): return self.pdt class child2(base): def __init__(self): self.pdt = product() def buildA(self): self.pdt.add('child X') def buildB(self): self.pdt.add('child Y') def getRault(self): return self.pdt class derictor: def __init__(self): pass def construct(self, chld): chld.buildA() chld.buildB() if '__main__' == __name__: dct = derictor() chld1 = child1() chld2 = child2() dct.construct(chld1) prod1 = chld1.getRault() prod1.show() dct.construct(chld2) prod2 = chld2.getRault() prod2.show()
結果:
Product Create:child Achild BProduct Create:child Xchild Y