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 - おっさんの手習い