Skip to content

Instantly share code, notes, and snippets.

@notyy
Created November 6, 2011 15:57
Show Gist options
  • Save notyy/1343063 to your computer and use it in GitHub Desktop.
Save notyy/1343063 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
@ggd543
Copy link

ggd543 commented Nov 6, 2011

Interesting

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment