NoSexUntilMarriage
on the slowass wiki has more than a few things to say
about this, some of them covered here. There are a lot
of reasons not to do what you're proposing. You usually
want to affect one instance of a class, not the entire
class. If you want to affect the entire class, fine, as
already said, just use some indirection to hide the implementation. You probably really want one of:
StatePattern - implementation dependent upon state,
DecoratorPattern - composition through chains of delegation,
InnerClasses - writing little built-in adapters to expose alternate interfaces to objects,
Or, as mentioned, Class::Classless, which lots you use
existing objects as prototypes for new objects. JavaScript
works this way, for anyone who has actually played with the
OO elements of JavaScript. Interesting, thats all.
Yes, this like all of my posts is a shameless plug.
Flame on. -scrottie