|An anonymous user wrote|
on October 4th, 2007 at 07:17 pm
It isn't <em>*that*</em> horrendous.
The situation you describe in this post is one where
change-class can be put to good use. You've got an abstract class (a
clipping-path) and three concrete representation classes. You are using
change-class to transparently switch representations as needed.
Horrendous is more along the lines of this:
(let ((my-fish (get-fish *aquarium*)))
(change-class my-fish 'bicycle)
(shift-gears my-fish 3))
You can really screw up the semantics of object identity if you use change-class in an undisciplined way, but you can also use it to preserve object identity in the face of representation changes, schema upgrades, and incremental debugging.