Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^2: Conditional inheritance strategy

by citromatik (Curate)
on Oct 27, 2010 at 13:17 UTC ( #867715=note: print w/ replies, xml ) Need Help??


in reply to Re: Conditional inheritance strategy
in thread Conditional inheritance strategy

Thanks a lot for your thoughts

In fact I followed your last suggestion in a first version of the classes (My::XML and My::JSON inherited from My::Base). But I found that doing it in that way you emphasize how the data is stored (XML or JSON in this case). But in both cases you should be able to end up with the same object regardless how the information to build it was stored. I mean, it should be natural to get an object of class My instead of My::XML or My::JSON.

I don't know if this has any sense.

citromatik


Comment on Re^2: Conditional inheritance strategy
Re^3: Conditional inheritance strategy
by Corion (Pope) on Oct 27, 2010 at 13:22 UTC

    Maybe you want then My->from_xml and/or My->from_json? Why is it important that My objects are XML or JSON objects? It seems to me that they should maybe be able to display or store themselves as XML or JSON, which I would put into a separate plugin or serialization class.

Re^3: Conditional inheritance strategy
by morgon (Deacon) on Oct 27, 2010 at 13:44 UTC
    What you are doing is basically a factory design pattern where the factory (in your case the My:: package) usually is not part of the hierarchie of the classes it creates.

    I mean, it should be natural to get an object of class My instead of My::XML or My::JSON.
    I am not sure if I understand your question, but clients of your factory would usually not bother weather they have a XML or a JSON instance but work through the interface that the base-class (My::Base) provides.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://867715]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2014-09-20 08:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (157 votes), past polls