Damien Cassou wrote:
thank you for your comment. I'm not sure what is exactly the design you propose. However, it seems you won't be able to cleanly implement FileStream, History and Decoder, do you? Could you please provide a set of diagrams so that we can compare apples and apples :-)?
I'll think about it. The main problem with the paper is that it takes the triad ReadStream, WriteStream, ReadWriteStream and replaces those with CollectionStream and then lists a bunch of numbers that I simply cannot recreate. For example, how did you come up with the "number of methods" in Table 6? This doesn't compute for me at all - neither if I look at only those three classes, nor when I look at the number of inherited stream methods.
Also, how do you decide whether "methods are implemented too high" in the hierarchy? For table 6, which methods did you consider to be implemented too high and are these counted in the total number of methods (which I doubt since the total number of methods is too small to include methods in superclasses so by definition it shouldn't count those).
About FileStream, History and Decoder: Please provide a definition of "cleanly implement" so that I can see if a solution to the problem exists. FileStream and Decoder look fairly straightforward though so unless you have a very restricted definition of "clean" I'm pretty sure I can come up with something.
Cheers, - Andreas