なんじゃくにっき

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

Scala de Design Pattern: Bridge

Bridgeパターン。

trait Color {
def getColor: String
}

trait White extends Color {
def getColor = "白い"
}

trait Pink extends Color {
def getColor = "桃色の"
}

abstract class Animal extends Color {
println(this)
override def toString = "私は" + getColor
}

abstract class Mammal extends Animal {
override def toString = super.toString + "獣"
}

abstract class Bird extends Animal {
override def toString = super.toString + "鳥"
}

object Main {
def main(args: Array[String]) = {
val whiteBear = new Mammal with White // 私は白い獣
val swan = new Bird with White // 私は白い鳥
val pig = new Mammal with Pink // 私は桃色の獣
val flamingo = new Bird with Pink // 私は桃色の鳥
}
}