Github user yisong-yue commented on the issue:
https://github.com/apache/zookeeper/pull/690
@anmolnar
I agree that concrete classes are a lot easier to test. Though in this
case, I think it's more appropriate for SnapStream to be a utility class that
does not hold any state. (It contains a global, non-changing "state"
`streamMode` now. It's a bit less ideal, but avoids having to pass in the same
streamMode value every time.)
For classes that need to hold some mutable state, I agree that concrete
class is the way to go.
---