
- Python 設計模式教程
- Python 設計模式 - 主頁
- 引言
- Python 設計模式 - 精華
- 模型檢視控制器模式
- Python 設計模式 - 單例
- Python 設計模式 - 工廠
- Python 設計模式 - 構建器
- Python 設計模式 - 原型
- Python 設計模式 - 外觀
- Python 設計模式 - 命令
- Python 設計模式 - 介面卡
- Python 設計模式 - 裝飾器
- Python 設計模式 - 代理
- 責任鏈模式
- Python 設計模式 - 觀察者
- Python 設計模式 - 狀態
- Python 設計模式 - 策略
- Python 設計模式 - 模板
- Python 設計模式 - 輕量級
- 抽象工廠
- 面向物件
- 面向物件概念的實現
- Python 設計模式 - 迭代器
- 字典
- 列表資料結構
- Python 設計模式 - 集合
- Python 設計模式 - 佇列
- 字串和序列化
- Python 中的併發性
- Python 設計模式 - 反
- 異常處理
- Python 設計模式資源
- 快速指南
- Python 設計模式 - 資源
- 討論
Python 設計模式 - 構建器
構建器模式是一種獨特的設計模式,它使用簡單的物件構建複雜的物件,並採用演算法方法。此設計模式屬於建立模式範疇。在此設計模式中,構建器類分步構建最終物件。此構建器獨立於其他物件。
構建器模式的優勢
它在類建立的指定物件的構建和表示之間提供了明確的分離和一個獨特的層。
它對建立的模式的構建過程提供了更好的控制。
它提供了改變物件內部表示的完美場景。
如何實現構建器模式?
在本節中,我們將學習如何實現構建器模式。
class Director: __builder = None def setBuilder(self, builder): self.__builder = builder def getCar(self): car = Car() # First goes the body body = self.__builder.getBody() car.setBody(body) # Then engine engine = self.__builder.getEngine() car.setEngine(engine) # And four wheels i = 0 while i < 4: wheel = self.__builder.getWheel() car.attachWheel(wheel) i += 1 return car # The whole product class Car: def __init__(self): self.__wheels = list() self.__engine = None self.__body = None def setBody(self, body): self.__body = body def attachWheel(self, wheel): self.__wheels.append(wheel) def setEngine(self, engine): self.__engine = engine def specification(self): print "body: %s" % self.__body.shape print "engine horsepower: %d" % self.__engine.horsepower print "tire size: %d\'" % self.__wheels[0].size class Builder: def getWheel(self): pass def getEngine(self): pass def getBody(self): pass class JeepBuilder(Builder): def getWheel(self): wheel = Wheel() wheel.size = 22 return wheel def getEngine(self): engine = Engine() engine.horsepower = 400 return engine def getBody(self): body = Body() body.shape = "SUV" return body # Car parts class Wheel: size = None class Engine: horsepower = None class Body: shape = None def main(): jeepBuilder = JeepBuilder() # initializing the class director = Director() # Build Jeep print "Jeep" director.setBuilder(jeepBuilder) jeep = director.getCar() jeep.specification() print "" if __name__ == "__main__": main()
輸出
上述程式生成以下輸出 −

廣告