| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: What databases have taught me
David Cressey wrote:
> "Robert Martin" <unclebob_at_objectmentor.com> wrote in message
> news:2006062722390616807-unclebob_at_objectmentorcom...
>
>
>> It is not hiearchy that drives OO, it is dependency management. It is >> the decoupling of callers from callees through the mechanisms of >> dynamic polymorhism that is the driving force behind OO design.
Instead of rational discussion I assume one could equally say rational comparison. To compare them, surely one needs to decide which aspects or facets (or in commercial terms, features) of each to talk about. I doubt if 'mechanisms' is the best word to classify such because it suggests implementations which would reduce any discussion to, for example, code.
Surely a comparison would involve discussing the effect of the code, not how the code is put together. In RT, we have have widely agreed upon understanding of the basic operations (join, union, projection and aggregate operators) and how they may be accurately combined in a framework based on the CWA and boolean truth. In OO, the fundamental operations seem to be polymorphism and inheritance, even though the quote above singles out polymorphism as the secret behind the 'driving force' of 'de-coupling'. Surely any discussion should start with something concrete, such as these operations. I would like to know how polymorphism could possibly be compared with, say, join. While polymorphism might allow two values expressed with completely different symbols to be treated as equal and this is certainly useful for comparing domains or implementing aggregate operators, how does it define the logical join of two objects with completely different properties?
(It seems that in the OO world, there is nothing to prevent the implementation of such a join, the result being whatever mysticism the author is prey to at the time. While there are undoubtedly protocols that an OO impl'n is expected to follow, I believe those have nothing to do with defining a predictable result when it is applied to different object instances. I also wonder whether the term 'De-coupling' is jargon when abstraction is really what is being talked about, i.e., two different abstractions are being discussed, one defines what its results will be, the other describes, whatever its results will be, how they are to be obtained.)
p Received on Wed Jun 28 2006 - 11:12:41 CDT
![]() |
![]() |