我正在读通过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