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