なんじゃくにっき

プログラミングの話題中心。

Scala de Design Pattern: Template Method

Template Methodパターン。
おおまかな処理を先に決めておいて細かい処理は最終的な実装に任せる。
 
traitの関数が実装を持てることを利用して実装してみた。

trait Hoge {
def execute = {
methodA
methodB
methodC
}
def methodA: Unit
def methodB: Unit
def methodC: Unit
}

object Main {
def main(args: Array[String]) = {
val hoge = new Hoge {
def methodA = { println("A") }
def methodB = { println("B") }
def methodC = { println("C") }
}
hoge.execute
}
}

// 【実行結果】
// A
// B
// C