Skip to content

Instantly share code, notes, and snippets.

@ggd543
Forked from notyy/gist:1343063
Created November 6, 2011 16:02
Show Gist options
  • Save ggd543/1343074 to your computer and use it in GitHub Desktop.
Save ggd543/1343074 to your computer and use it in GitHub Desktop.
logger mixin
abstract class BizService {
def doIt()
}
class Worker extends BizService {
def doIt() {println("I am working")}
}
trait Logger extends BizService {
abstract override def doIt() {println("logMe first");super.doIt()}
}
-------------------------------------------
scala> val worker = new Worker
worker: Worker = Worker@776f06f8
scala> worker.doIt()
I am working
scala> val loggedWorker = new Worker with Logger
loggedWorker: Worker with Logger = $anon$1@4847c707
scala> loggedWorker.doIt()
logMe first
I am working
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment