Delegation
- Add a "has_a"'s methods to your class
package Provider;
sub foo {'this is Provider::foo'};
sub bar {'this is Provider::bar'};
package Consumer;
use Moose;
has 'provider' => (
is => 'ro',
isa => 'Provider',
handles => [qw/foo bar/],
required => 1,
);
Consumer->new( provider => Provider->new )->foo # this is Provider::foo