25 lines
572 B
CoffeeScript
25 lines
572 B
CoffeeScript
class Delegator
|
|
operation: ->
|
|
if @delegate and typeof (@delegate.thing) is "function"
|
|
return @delegate.thing()
|
|
"default implementation"
|
|
|
|
class Delegate
|
|
thing: ->
|
|
"Delegate Implementation"
|
|
|
|
testDelegator = ->
|
|
# Delegator with no delegate.
|
|
a = new Delegator()
|
|
console.log a.operation()
|
|
|
|
# Delegator with delegate not implementing "thing"
|
|
a.delegate = "A delegate may be any object"
|
|
console.log a.operation()
|
|
|
|
# Delegator with delegate that does implement "thing"
|
|
a.delegate = new Delegate()
|
|
console.log a.operation()
|
|
|
|
testDelegator()
|