Skip to content

Instantly share code, notes, and snippets.

@jponge
Created January 10, 2011 19:57
Show Gist options
  • Save jponge/773344 to your computer and use it in GitHub Desktop.
Save jponge/773344 to your computer and use it in GitHub Desktop.
trait GreeterComponent {
trait Greeter {
def sayHello(who: String): String
}
def greeter: Greeter
}
trait MyGreeterComponent extends GreeterComponent {
class AussieGreeter extends Greeter {
def sayHello(who: String) = "G'day " + who + "!"
}
}
trait MyAppComponent {
this: GreeterComponent =>
def work {
val g = this.greeter
println(g.sayHello("Julien"))
}
}
object App extends Application with MyAppComponent with MyGreeterComponent {
def greeter: Greeter = new AussieGreeter()
}
App.work
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment