In the above example, I have to change the signature of both the interface and the implementation every time I touch the code, and it takes up to twice as much space.  I don't mind the pattern when using the class, just makes the class hard to maintain.