Types, Makers, and Inheritanc
Tue, 20 Oct 1998 17:33:28 -0400
At 09:48 AM 10/20/98 -0700, you wrote:
>Rule #1 of Capability-based Design: Distinctions in authority are
>represented with distinct objects.
I understand and agree with this design principle; however, I am not sure
that I see how it applies. Exactly what authority does a type object give
you? I don't see that it can in any way add to the way that you interact
with an instance object.
>Programs must be able to manipulate
>descriptions of objects and their protocols (i.e., type objects) without
>granting the authority to create instances.
Could you explain exactly what kind of manipulation you're talking about?
>It's useful to be able to
>talk about the protocol of bank accounts, create user interfaces to them,
>etc. without allowing the construction of them outside of banks. This
>means that they must be separate objects.
I don't see how it's necessary to have Type objects in order to have an
interface to an instance object. In C++, I never had a need or desire for
While Type objects do represent a different concept than Maker objects, I
feel comfortable that I can get by just fine without Type objects. Going
without Type objects might even encourage better designs.