我正在通读 this article on design patterns in Scala ,他们提出了 Builder 模式与 Java 相关的论点,因为它允许这样的代码:
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)
他们后来表示:
In a language like Scala which lets you name arguments while passing them in, the builder pattern is mostly obsolete...
Python 的情况是否与此类似,因为您可以在任何调用中命名关键字参数,或者这种设计模式是否有一些合理的应用?
请您参考如下方法:
在Effective Java一书中可以找到权威的答案。 第 2 章是 Josh Bloch 著名的 Java Builder 模式的发源地。 在第 15 页,它指出,
The Builder pattern simulates named optional parameters as found in Ada and Python.
所以您的问题的答案是强调是。无需模拟语言中固有的模式。
您可能也对这个热门话题感兴趣:Does functional programming replace GoF design patterns?
