コンストラクタのパラメータの組み合わせ爆発に対応する

java だと、きちんとクラスを作りこもうとすればするほど、コンストラクタ引数の組み合わせが爆発しそうになることってありますよね。*1

そういうときに、groovy の名前つきパラメータって便利かも。

class Person {
  def name, age
  
}

// 名前つきパラメータ
p1 = new Person(age:20, name:'foo')
p1.name                     // ===> foo
p1.age                      // ===> 20

// 名前つきパラメータとして Map を渡してもOK
args = [age:30, name:'bar']
p2 = new Person(args)
p2.name                     // ===> bar
p2.age                      // ===> 30

*1:DIコンテナ愛好家には、コンストラクタを用いずにすべて setter で済ます人も多いようですが。