Perl-Sensitive Sunglasses | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
Update: added a more intuitive example here
Lets say we have two classes Container and Element and you can
For this to work does $elem2 obviously need to know that it belongs to $container. So it's N->1 : N Element -> 1 Container and $elem1 == $elem with updated property $elem->{member_of}=$cont Now after using this for a long time new requirements arise and Elements need to belong to multiple Containers. So now it's N->M : N Element -> M Container Clearly the old model with $elem2 == $elem doesn't work anymore because $elem2 = $cont2->get_elem('name'); can't be member_of two different containers to allow method chaining I don't think that $elem1 and $elem2 should belong to class Element either, but to a "wrapper" class ContainerElement referencing $elem, i.e. $elem1->{master}=$elem Then I could think of many solutions, some involving inheritance, some AUTOLOAD to make sure that $elem1->do_something(...) always does $elem1->{master}->do_something(..) without hardcoding all methods. I don't wanna reinvent the wheel and I'm already starting to worry too much about performance so here the question ... What are the usual OO-Patterns to solve this? :)
Cheers Rolf
update*) OK Sorry, do_something() is doing something with the relation $cont <- $elem like set_weight($cont,$elem) In reply to OO Pattern Container x Elements and Method Chaining by LanX
|
|