Do you prefer composition over inheritance? Yes, that's great. Why aren't your classes `final` then? Oh, you have tests and you mock your classes. **But why is that a problem?**| tomasvotruba.com
Declaring classes as final enhances our code quality and abstraction dramatically, but is it always correct?| ocramius.github.io