in reply to Re^4: Hooks like Storable for Dumper?
in thread Hooks like Storable for Dumper?
Warning this node contains a u-turn of opinion that would impress even a well salted politician...
I think I finally clicked to why Storable uses the approach it does and why despite the other points raised I think it actually makes more sense. In two words:
Respect Inheritance!
The point is that if you define a Storable_freeze() method all Storable has to do is say $obj->can('Storable_freeze') (in a heavy XS accent of course ;-) and it knows if the object needs special handling. With my approach I have to do a hash lookup on the classname, so subclasses won't inherit their freeze/thaw handlers.
Which brings me to the point of starting to think that my approach is actually subpar and that it makes a lot more sense to copy Storable's approach. Which leaves me in the uncomfortable situation of wanting to support both. Sigh.
I think that given a classname register would break inheritance I'm going to have to provide DDS_freeze and DDS_thaw support. I guess supporting both approaches has its merits as they are to a certain extent complementary. IE, you could use the existing mechansim to override the DDS_ method hooks if you wanted to.
Anyway, live and learn I guess.
|
|---|