Delegates: Difference between revisions
Content added Content deleted
(Add C) |
(→{{header|Oz}}: simplified; made more idiomatic) |
||
Line 411:
=={{header|Oz}}==
{{trans|Python}}
<lang oz>
class Delegator from BaseObject▼
meth set(DG)▼
{Object.is DG} = true %% assert: DG must be an object
delegate := DG
in▼
in▼
end▼
▲ }
end▼
@B▼
end ▼
▲ class Delegator
{self default($)}
else
▲ meth operation(?R)
▲ if {IsMethod @delegate 'thing' 1} then
catch error(object(lookup ...) ...) then
%% the delegate did not understand the message
R = 'default implementation' ▼
▲ meth set(DG)
▲ delegate := DG
class Delegate from BaseObject
meth thing(
end
end
{A
{
▲ {Stdout write(vs:{A operation($)}#'\n')}
▲ {A set({New Delegate noop})}
{A set({New Delegate noop})}
{System.showInfo {A operation($)}}</lang>
=={{header|Perl}}==
|