Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

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.


Replies are listed 'Best First'.
Re^3: Conditional inheritance strategy
by morgon (Priest) 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.
Re^3: Conditional inheritance strategy
by Corion (Patriarch) 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.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2022-05-18 14:18 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (71 votes). Check out past polls.