Casey Durfee wrote:
>
>I thought that was the point of using interfaces? I guess I don't get why you need a standard to be compelled to do something you should be doing anyway -- coding to interfaces, not implementations.
>
>
Interfaces work well with like products (a database abstraction library
is a great example), however interfaces don't lend well to products that
achieve a similar goal but work differently altogether. Relational
databases all work the same: there are databases, each database has
tables, views, procedures, etc. and each table has columns, etc.
However more infantile systems such as xml storage systems are hard to
map in a similar fashion. I ran into this exact problem, I developed a
system around eXist and developed an interface for the data layer and a
"driver" for interacting with exist. I then wanted to compare other
databases such as berkeley db xml. I quickly found that they achieve a
common goal, but do not implement the same concepts making them very
hard to compare. eXist has "collections" to group your xml into
distinct groupings and db xml does not. In my interface I had a method
called getCollections, but since db xml does not have anything like
this, I could not use that method. So now how would you develop an
interface that would include various xml databases as well as full-text
index systems such as lucene, etc. I would image this would be very
challenging.
|