26 lines
602 B
Plaintext
26 lines
602 B
Plaintext
type Thingable
|
|
interface
|
|
fun thing ← text by block do end
|
|
end
|
|
type Delegate implements Thingable
|
|
model
|
|
fun thing ← text by block
|
|
return "delegate implementation"
|
|
end
|
|
end
|
|
type Delegator
|
|
model
|
|
Thingable delegate
|
|
fun operation ← <|when(me.delegate æ null, "default implementation", me.delegate.thing())
|
|
end
|
|
fun byDelegate ← Delegator by Thingable delegate
|
|
var delegator ← Delegator()
|
|
delegator.delegate ← delegate
|
|
return delegator
|
|
end
|
|
type Main
|
|
Delegator a ← Delegator()
|
|
writeLine(a.operation())
|
|
Delegator b ← Delegator.byDelegate(Delegate())
|
|
writeLine(b.operation())
|