Delegates: Difference between revisions

Latitude language added
(Latitude language added)
Line 1,278:
delegate implementation
</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}}==
37

edits