Like I said, Composition is having an object inside another object. Where you go from there with respect to *accessing* the nested object is up to you!
package MainObject;
sub new
{
...
$self->{nested} = new NestedObject;
...
}
sub callNestedObjectMethod
{
my $self = shift;
$self->{nested}->theMethod;
}
But you might not even do that. You might never export 'theMethod' in this fashion, it might only be internally used. The 'Composition' part is having NestedObject as a member of your class.
It sounds like what you want is to "take object a, b, c and make a new object that lets me call methods from all of them". That sounds like private/protected inheritance in C++, and that sounds messy. Why not explicitly write your interface as above?
--
Ash OS durbatulk, ash OS gimbatul,
Ash OS thrakatulk, agh burzum-ishi krimpatul!
Uzg-Microsoft-ishi amal fauthut burguuli.
|