我正在讀通過this article on design patterns in Scala,並且他們提出,該生成器圖形是Java相關的,因爲它允許代碼等作爲參數:Python中的`Builder`設計模式已經過時了嗎?
CarBuilder carBuilder = new CarBuilder()
carBuilder.setSeats(2)
carBuilder.setSportsCar(true)
carBuilder.setTripComputer(true)
carBuilder.setGPS(false)
Car car = carBuilder.build()
相對於更多的混亂傾向形式:
Car car = new Car(2, true, true, false)
他們後來說:
在比如Scala語言,它可以讓你的名字的參數,同時通過 他們,建造者模式基本上是過時的......
這是爲Python類似的情況,因爲你能夠在任何調用命名關鍵字參數,或者是有這種設計模式的一些合理的應用程序?
您可以通過一個建設者繞前'建立()'ING,其在不同的時間和地點進行初始化的不同方面。另外,如何創建一個對象可能會涉及複雜的邏輯 - 甚至是*哪些*。 '流利'API通常只能通過構建器模式來實現。 – JimmyB