RSS Git Download  Clone
Raw Blame History
package Customer;

=begin
* wait: simulates that the customer waits in the queue for a number of minutes, given
as an integer parameter, while another customer is being served. Returns nothing.
* hasLeft: Returns whether the customer has left the shop (true/false). No parameters.
* getRequiredTime: Returns the time in minutes required to serve the customer. No
parameters.
* getPayment: Returns the amount (integer, in GBP) which the customer needs to pay.
No parameters.
=cut

use Moo;

use constant TIME => 10;
use constant COST => 1;

sub wait { } # overridden in MaleCustomer & FemaleCustomer

sub hasLeft { 0 } # never leaves

sub getRequiredTime { TIME }

sub getPayment { COST }

sub parentMethodOnly { 'inheritance check OK' }

no Moose;
__PACKAGE__->meta->make_immutable;

1;