Re: Mixing OO and DB

From: Stefan Ram <ram_at_zedat.fu-berlin.de>
Date: 13 Feb 2008 03:25:00 GMT
Message-ID: <data-20080213041941_at_ram.dialup.fu-berlin.de>


"David Cressey" <cressey73_at_verizon.net> writes:
>Objects do not always hide data.
>Specifically, they pass messages to each other in the form of data.

  One might say that the core of object-oriented expressions   is the verb (selector). For example,

      shirt.makeSelfClean()
      car.makeSelfClean()

  The message »makeSelfClean()« will invoke different behavior   on a shirt than on a car, because a shirt uses other means   to clean (wash) itself than a car, but both fullfil the   meaning of the English expression »to make oneself clean«.

  Now, data might be an argument of a verb, as in:

#define FAST_MODE 1

      shirt.makeSelfClean( FAST_MODE )
      car.makeSelfClean( FAST_MODE )

  Here, the value »1« means to wash in a fast mode, which might   removed less dirt. »1« is data, but here it appears only in   subordination to the verb - not in isolation.

  Does this make a big difference?

  Possibly so, because /the behavioral interpretation of the   argument data is given by the specification of the verb/,   while isolated data does not have a behavioral interpretation.

  (The /specification/ of a verb (message selector) and its   parameters possibly is the most underestimated part of   (object-oriented) programming. I consider it to be an integral   part of the paradigm. For example, my variant of the LSP   (liskov-substitution principle) refers to it. JavaDoc is   something that Java has done right, even if one could imagine   even more elements from DBC (design by contract), but there   still are many languages caring much less for documentation.   Documentation of declared identifiers should be part of   programming language design, from the very moment a new   language is being designed.) Received on Wed Feb 13 2008 - 04:25:00 CET

Original text of this message