Steve

Steve Downey wrote:
> Clazz, or whatever, should provide MetaClass facilities. That is, it
should be 
> for creating, manipulating, etc Class instances. And, in java, an instance
of 
> java.lang.Class is a class. So j.l.Class is a type of MetaClass. 

Technically a MetaClass is a Class. But semantically a class whose
instances are classes is a MetaClass. So it might help to distinguish 
both by using the prefix Meta (as in Smalltalk80) or some other
naming scheme.

> But that shouldn't open the door for naming everything else Meta. 
> 
> A property that applies to an instance of Clazz isn't a meta property,
it's a 
> class property. 

Same objection as above.

> These are frequently called attributes, to distinguish them 
>from properties, which apply to, and vary with, instances. If we use 
> Attribute as the name of class properties, we need something to use for 
> Property, in order not to conflict with ...  nothing. There isn't a class
> j.l.Property. So Property is a decent name for describing object, as
opposed 
> to class, properties. 
> 
> Field, on the other hand, usually means an actual slot in the object. A
field 
> is never implemented virtually, the way a property might be. So Complex
might 
> have fields real and imaginary, but properties real, imaginary, radius and

> theta. [With radius and theta being read only. Don't make properties have
> side-effects] 

This difference between Fields and Properties never became clear 
to me before. I think this is an important difference, which should
be reflected in the API. So a property might have a Field but does
not need to, so perhaps "hasField()" or simply offer getField().

[SNIP]

I do think Stephen (Colebourne) is right that it might be better
to start prototyping and to see if the names fit.

Victor


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>

Reply via email to