0
我正要使用具有命名默認參數的情況類作爲構建器。舉個簡單的例子:使用命名默認參數的情況與方法構建器
case class Person(name:String)
case class PersonBob(name:String = "Bob") {
def build = Person(name)
}
val casePerson = PersonBob("case").build
但我可以使用方法,以及:
object Builder {
def personBob(name:String = "Bob"):Person = Person(name)
}
val methodPerson = Builder.personBob("method")
一些權衡:
- 方法方法無需爲每個建設者的對象.. 。節省的週期和內存。
- 方法方法有一些精簡的實現代碼。對使用語法沒有好處。
- 方法無法作爲參數傳遞給「構建器組合」的其他構建器。函數可以,但是我們在這裏討論方法,因爲函數不支持參數默認值。
- 案例類方法允許我堅持構建器實例(現在不需要)。
- 案例分類方法將有助於在某個時候構建內部DSL--但我認爲外部DSL對兩種方法都是矛盾的。
其他注意事項?以另一種方式建造一個更好的建設者?
沒有理由對您給出的示例使用構建器,只需簡單的工廠方法即可。如果您需要更復雜的對象構建,請提供您需要執行的示例。 – 2011-05-04 07:32:50