From: Pierre R. M. <pm...@pm...> - 2002-12-29 22:50:52
|
Am Sonntag, 29.12.02 um 17:17 Uhr schrieb Gerd Moellmann: > Hard to tell if it's worth doing. Out of the top of my head, I don't > even remember a real program doing REINITIALIZE-INSTANCE. FWIW, reinitialize-instance is used in a somewhat common idiom of CLOS usage, where we want to dispatch on the objects itself, when computing the initargs used to initialize the object properly, e.g. (let* ((entity (make-instance class)) (initargs (compute-entity-initargs entity headers))) (apply #'reinitialize-instance entity intargs) entity) (defmethod compute-entity-initargs ((entity lazy-entity) headers) ...) ... This makes initialization work even for newly defined subclasses with new default-initargs or new initforms, etc. Other approaches either don't work for subclasses, because they eql-dispatch on the objects class prior to creation, or they don't work nicely with the initargs mechanism, because they directly modify the objects slots. Regs, Pierre. -- Pierre R. Mai <pm...@ac...> http://www.pmsf.de/pmai/ The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. -- Nathaniel Borenstein |