Streams: an open discussion
Sean Kelly
sean at f4.ca
Wed Mar 15 23:59:25 PST 2006
surferjeff at excite.com wrote:
>
> I see. Not so bad. Thanks.
>
> Instead of the "Inherit 20 methods, implement 3 pure virtual methods" approach,
> how about "implement the same 3 pure virtual methods in an interface, pass the
> interface to a class that uses it to implement the 20 methods." I've used the
> former pattern a lot in C++, and have found it difficult to reuse. I recently
> learned the latter pattern in Objective-C and Cocoa, and have found it much
> easier to reuse.
Something like:
class MyStreamImpl()
{
void readBlock();
void writeBlock();
seek();
}
class Stream( Impl )
{
mixin Impl!() impl;
alias impl.readBlock readBlock;
alias impl.writeBlock writeBlock;
alias impl.seek seek;
...
}
alias Stream!(MyStreamImpl) MyStream;
Sean
More information about the Digitalmars-d
mailing list