Come for the quick hacks, stay for the epiphanies. | |
PerlMonks |
Re: OO Pattern Container x Elements and Method Chaining (House, Person, Inhabitant)by LanX (Saint) |
on Oct 08, 2021 at 16:51 UTC ( [id://11137360]=note: print w/replies, xml ) | Need Help?? |
OK, .. I hope an example makes it clearer
this used to work as long as one Person could only live in ONE house at a time.
Now the requirement changed to manage multiple houses in the same program with overlapping sets of inhabitants. my best guess is that get_elem should now return an object of a new class Inhabitant pointing to one SharedHouse and one Person
but both are internally pointing to the same Person 'Egon' $elem1->{person} == $elem2->{person} such that $elem1->pay_rent() pays the rent for the SharedHouse object in $cont1 but $elem1->comb_hair() delegates to $elem1->{person}->comb_hair() I hope it's clearer now. :) (the real model is even more complicated, since the container is actually a matrix of two types of elements and values in the cell. Think of objects of type Room like $kitchen, and $Egon->owns("Kitchen", "Table"); )
Cheers Rolf
In Section
Seekers of Perl Wisdom
|
|