[comp.lang.c++] Implementation vs. Specification

bytor@ctt.bellcore.com (Ross Huitt) (06/01/91)

Here's a topic that should generate conversation. What techniques
do You use to separate specification from implementation? I'm asking
about the general case where you have a class 'Foo' which specifies
some abstract behavior but provides no implementation at all. All
of the member functions are virtual, possibly pure virtual. The
actual implementation can be achieved by several different mechanisms,
eg. classes Bar1, Bar2, and Bar3.  What are the general techniques for
implementation in this case?

Now, let us suppose we have two specification classes Foo_base and Foo_derived
(where Foo_derived adds some additional specification to Foo_base),
and they have their cooresponding implementations Bar_base1, Bar_base2,
Bar_derived_1, ... How do you handle this case?

You can ignore the hints I've given for class derivation. I'm more interested
in how people are dealing with specification class hierarchies that may have
more than one implementation. The only easy answers I've seen sacrifice a
great deal of flexibility or require a significant amount of redundancy, neither
of which I find attractive.

Any takers?

Ross Huitt
bytor@ctt.bellcore.com

mnm@hpcupt3.cup.hp.com (Michey Mehta) (06/03/91)

See the paper by Bruce Martin in the 1991 Usenix C++ conference proceedings.
It describes a method for separating interface and implementation lattices.

Michey Mehta
mnm@hpda.hp.com