Delegates: Difference between revisions
Content added Content deleted
Mercerenies (talk | contribs) (Latitude language added) |
|||
Line 1,278: | Line 1,278: | ||
delegate implementation |
delegate implementation |
||
</pre> |
</pre> |
||
=={{header|Latitude}}== |
|||
{{trans|Python}} |
|||
<lang latitude>Delegator ::= Object clone tap { |
|||
self delegate := Nil. |
|||
self clone := { |
|||
Parents above (parent self, 'clone) call tap { |
|||
self delegate := #'(self delegate). |
|||
}. |
|||
}. |
|||
self operation := { |
|||
localize. |
|||
if { this delegate slot? 'thing. } then { |
|||
this delegate thing. |
|||
} else { |
|||
"default implementation". |
|||
}. |
|||
}. |
|||
}. |
|||
Delegate ::= Object clone tap { |
|||
self thing := "delegate implementation". |
|||
}. |
|||
;; No delegate |
|||
foo := Delegator clone. |
|||
println: foo operation. ;; "default implementation" |
|||
;; Delegate which lacks `thing` |
|||
foo delegate := Object. |
|||
println: foo operation. ;; "default implementation" |
|||
;; Delegate which implements `thing` |
|||
foo delegate := Delegate. |
|||
println: foo operation. ;; "delegate implementation"</lang> |
|||
=={{header|Logtalk}}== |
=={{header|Logtalk}}== |