ビルダ的なモノを作ってみる
class Hoge(paramA: Int, paramB: Int, paramC: Int) { override def toString = "paramA=" + paramA.toString + ",paramB=" + paramB.toString + ",paramC=" + paramC.toString } class Builder { private var _paramA = 0 private var _paramB = 0 private var _paramC = 0 def paramA(paramA:Int) = { _paramA = paramA this } def paramB(paramB:Int) = { _paramB = paramB this } def paramC(paramC:Int) = { _paramC = paramC this } def build = new Hoge(_paramA, _paramB, _paramC) }
ビルダの使用
println(new Builder paramA 1 paramB 2 paramC 3 build)
何とも言えぬ気持ち悪さ。
で、書いた後で2.8系から名前付き引数とデフォルト引数が使えることに気づいた。