Re: Clean Object Class Design -- What is it?

From: Craig Shearer <craig.shearer_at_no_spam_please_bigfoot.com>
Date: Mon, 10 Sep 2001 04:21:00 GMT
Message-ID: <3b9c3fa0_at_clear.net.nz>


"Bob Badour" <bbadour_at_golden.net> wrote in message news:obVk7.770$Vc4.134525028_at_radon.golden.net...
> >
> >If you're asking about Integrity Checking, then there is no formal
> mechanism
> >for defining this.
>
> This gives a huge advantage to the relational data model then, which does
> have such a formal mechanism.
>

Let's compare correctly. I said that there was no formal mechanism for doing this in the example OODBMS that I was using (which happens to be JADE) but that doesn't mean that such a mechanism could not be implemented. It would be possible to implement this with as much formality as The Relational Data Model allows... not all OODBMS products have matured this far, yet.

>
> >However, it is possible to define code in the destructor
> >for the class that would raise an exception under certain circumstances,
> >thus preventing deletion by forcing the transaction to abort.
>
> Since the DBMS must support multiple applications and multiple programming
> environments, what prevents your Java programmers from omitting an
important
> constraint in the destructor that your Smalltalk programmers rely on?
>

But this particular DBMS is active - you can't get at JUST the data, you necessarily invoke methods too. If another language wants to delete a JADE object, then the JADE destructor will be invoked - you can't program around this!

Or, as you are so fond of saying, your original assumptions are false which renders the rest of your argument invalid. :-)

>
> >I'm not certain what you mean by symmetric references, but I'll hazard a
> >guess. When references between classes are defined, you specify an update
> >mode - effectively which side is manually maintained. So, if the
> >relationship defines manual on one side and automatic on the other, then
> the
> >compiler will reject (with a syntax error) code attempting to update the
> >automatic side of the relationship. It is possible, though, to define
both
> >sides as manual/automatic, meaning that whichever side is maintained
> >manually, the other side will be automatically maintained.
>
> Symmetric means the user can use the value as to identify referencers as
> easily as the referenced. All of the above manual and automatic crap are
> just more physical implementation details forced on users.
>
>

Then by your definition, these references are symmetrical.

Regarding the manual/automatic thing, I don't believe this to be a physical detail - my opinion is that this represents something logically inherent in the data. But then your reaction to anything that The Relational Data Model doesn't implement seems to be that it's an evil physical implementation detail.

Craig. Received on Mon Sep 10 2001 - 06:21:00 CEST

Original text of this message