Re: Mixing OO and DB
Date: Sat, 08 Mar 2008 13:50:59 GMT
> I always find use of the terms "abstract" and "low-level"
> terribly suspect. It's more useful to think in terms of
> the common (usually, the "abstract") vs. the specific.
> We always strive to factor out the common from the specific;
> this is what we call "abstraction".
What is abstraction, really? It's the omission of some detail, presumably extraneous, in order to highlight the features that have not been omitted. This is one of the basic tools the human mind uses to deal with complexity. It is not an unmixed blessing. At the moment when one of the omitted details becomes crucial to the situation at hand, the abstraction begins to hinder instead of helping.
> In the context of a single application with a variety of storage
> backends, which is what the OO world usually thinks of, and Robert Martin
> in this case, abstraction means providing a common application/storage
> interface that allows storage backends to be added and replaced without
> any change to the common application code.
> In the context of a single data storage with a variety of different
> applications, which is what the RDBMS world usually assumes, abstraction
> means providing a common application/storage interface that allows
> applications to be added and replaced without any change to the common
> storage facility.
> They're both abstraction, but in the opposite direction.
Excellent Contrast! This is a keeper! Received on Sat Mar 08 2008 - 14:50:59 CET