発言駆動日記

何事も発言駆動な日記。HDD

Let's go Party -条件分岐と処理の組み合わせをクロージャで-

しょうもない例を交えて、Groovyのクロージャで手習い。

class Party{
  def with  
  def pay
    
  def myFeeling(cond){    
    if (cond.menber.call(with) && cond.price.call(pay)){    
      cond.feel.call()
    }
  }
}

class Condition{
    Closure  menber
    Closure  price
    Closure  feel
}

def conds = [
    new Condition(
                menber:{it == 'boys'},
                price:{(0..3000).contains(it)},
                feel:{println "どうしよかな"}),

    new Condition(
                menber:{it == 'girls'},
                price:{(3000..10000).contains(it)},
                feel:{println "行く!!"})
]
            
def afterFive = new Party(with:"girls", pay:8000)

conds.each{ afterFive.myFeeling(it) }

構造は参考記事そのままですが、クロージャを使った条件分岐と処理の組み合わせが面白いと思ったので、思いつくままにアレンジ。 いやはや。

参考記事複雑な条件でもOK - おっさんの手習い