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