[Prev][Next][Index][Thread]

Re: Need help with Class-Allocated Slots



On Wed, 21 Jun 2000 17:15:03 -0400 (EDT), Chris Double <chris@double.co.nz>
wrote:

> "Ron Franke-polz" <ron.franke-polz@iac.honeywell.com> writes:
> 
> > I've been playing around with slot allocation and am wondering if there is a
> > way to access "class allocated" slots without having an instance of that
> > class?
> 
> There was a discussion on this last year I think when the singleton
> design pattern was discussed. It turns out there is no way of
> accessing the class or each-subclass slots without an instance of the
> class.
> 
> One possible work around is not to use the class allocated slot but to
> use a normal function accessing a global variable or some similar
> scheme.

This was probably mentioned the last time this topic came around, but one could
use a class allocated slot, a singleton, and wrap the access to give the feel
of direct access.

define class <foo> (<object>)
  class slot foo-bar = #f, init-keyword: bar:;
end class;

define constant $foo = make(<foo>);

define method foo-bar ( x == <foo> )
  foo-bar( $foo );
end method;

The downside is that making an instance may be costly or have resources
associated with it that are inappropriate for such a prototype, but you could
introduce a subclass which was specialized for this purpose.

__Jason

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp


Follow-Ups: References: