How to resolve the algorithm Delegates step by step in the Raku programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Delegates step by step in the Raku programming language

Table of Contents

Problem Statement

A delegate is a helper object used by another object. The delegator may send the delegate certain messages, and provide a default implementation when there is no delegate or the delegate does not respond to a message. This pattern is heavily used in Cocoa framework on Mac OS X. See also wp:Delegation pattern. Objects responsibilities: Delegator: Delegate: Show how objects are created and used. First, without a delegate, then with a delegate that does not implement "thing", and last with a delegate that implements "thing".

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Delegates step by step in the Raku programming language

Source code in the raku programming language

class Non-Delegate  { }

class Delegate {
	method thing {
		return "delegate implementation"
	}
}

class Delegator {
	has $.delegate is rw;

	method operation {
		$.delegate.^can( 'thing' ) ?? $.delegate.thing
		!! "default implementation"
	}
}

my Delegator $d .= new;

say "empty: "~$d.operation;

$d.delegate = Non-Delegate.new;

say "Non-Delegate: "~$d.operation;

$d.delegate = Delegate.new;

say "Delegate: "~$d.operation;


  

You may also check:How to resolve the algorithm Matrix multiplication step by step in the MATLAB programming language
You may also check:How to resolve the algorithm Loops/N plus one half step by step in the REXX programming language
You may also check:How to resolve the algorithm Parsing/RPN calculator algorithm step by step in the PARI/GP programming language
You may also check:How to resolve the algorithm Unix/ls step by step in the Gambas programming language
You may also check:How to resolve the algorithm Conway's Game of Life step by step in the V (Vlang) programming language