【发布时间】:2014-03-20 14:54:41
【问题描述】:
我是一个 scala 新手,我想知道构建器模式是否像 http://blog.rafaelferreira.net/2008/07/type-safe-builder-pattern-in-scala.html 中描述的那样
在scala >= 2.8 中有一些用法。
使用命名参数和默认参数,我可以声明哪些参数是强制性的(不给它们默认值),我可以按我想要的任何顺序传递构造函数参数(通过使用命名参数)。
那么拥有builder有什么好处吗?
【问题讨论】:
-
我相信还是有用的。如果您通读整个教程,您会看到该模式的高级特性,例如基数约束。此外,编写一个在一次调用中提供所有参数的怪物表达式有时会很不方便。最后,一旦您将默认形式参数放入方法中,一些限制就会生效(例如,不允许重载该方法)。
-
(我错过了五分钟的编辑截止日期,所以...)如果您有多个相同类型的默认参数,那么遗漏任何一个都可能会模棱两可(原语–尤其是
boolean–和无处不在的类型,如String似乎是最常重复的)。 -
@RandallSchulz 显然,一个人获得了一定的声誉和地位,不再觉得有必要发布赞成的答案。 SO 应该为增加的 cmets 提供小数点,就像银行账户跟踪小数便士的方式一样。
-
@RandallSchulz 是的,但如果我总是通过传递命名参数来使用构造函数,我认为你提到的问题不存在。
标签: scala