Delegates: Difference between revisions

Line 2,421:
NonDelegate: default implementation
Delegate: delegate implementation
 
=={{header|Smalltalk}}==
{{works with|Smalltalk/X}}
Definition of the thingy:
<lang smalltalk>
Object
subclass:#Thingy
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
 
thing
^ 'thingy implementation'
</lang>
Definition of the delegator:
<lang smalltalk>
Object
subclass:#Delegator
instanceVariableNames:'delegate'
classVariableNames:''
poolDictionaries:''.
 
delegate:something
delegate := something
 
operation
^ delegate
perform:#thing
ifNotUnderstood:'default implementation'.
</lang>
Sample use:
<lang smalltalk>
|d|
d := Delegator new.
d operation.
-> 'default implementation'
 
d delegate:(Thingy new).
d operation.
-> 'thingy implementation'
</lang>
 
=={{header|Swift}}==
Anonymous user