Delegates: Difference between revisions

Content added Content deleted
(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}}==