Scala与Java构建器模式等效吗?

Scala与Java构建器模式等效吗?,第1张

Scala与Java构建器模式等效吗?

Scala
2.8中Builder模式的另一种替代方法是使用具有默认参数和命名参数的不可变case类。有点不同,但效果是智能默认值,所有指定的值以及仅通过语法检查指定一次的内容…

以下使用字符串作为简洁/速度的值…

scala> case class Pizza(ingredients: Traversable[String], base: String = "Normal", topping: String = "Mozzarella")defined class Pizzascala> val p1 = Pizza(Seq("Ham", "Mushroom"))   p1: Pizza = Pizza(List(Ham, Mushroom),Normal,Mozzarella)scala> val p2 = Pizza(Seq("Mushroom"), topping = "Edam")         p2: Pizza = Pizza(List(Mushroom),Normal,Edam)scala> val p3 = Pizza(Seq("Ham", "Pineapple"), topping = "Edam", base = "Small")       p3: Pizza = Pizza(List(Ham, Pineapple),Small,Edam)

然后,您也可以将现有的不可变实例也用作构建器…

scala> val lp2 = p3.copy(base = "Large")lp2: Pizza = Pizza(List(Ham, Pineapple),Large,Edam)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5487214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存